F. A Heap of Heaps time limit per test 3 seconds memory limit per test 512 megabytes input standard input output standard output Andrew skipped lessons on the subject 'Algorithms and Data Structures' for the entire term. When he came to the final tes…
[链接]h在这里写链接 [题意] 给你一个n*n的矩阵. 其中每一列都有一个点. 任意两个点构成了矩形的两个对角点 ->即任意两个点确定了一个矩形. ->总共能确定n*(n-1)/2个矩形. 现在,给你一个圈出来的矩形区域. 问你有多少个矩形,是在这个矩形之内.或和矩形相交. [题解] 找和询问矩形相交的矩形不好找. 我们可以反过来. 求出不和询问的矩形相交的矩形的个数. 具体的. 我们找出询问的矩形的上方,左方,下方,右方的整个矩形区域的点的个数. 显然,假设这个区域里面的点的个数为x; 则…
                                                                E. Infinite Inversions                                                                                          time limit per test 2 seconds                                            …
D. Alyona and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Alyona has a tree with n vertices. The root of the tree is the vertex 1. In each vertex Alyona wrote an positive intege…
Sample Input 5 4 1 2 3 4 5 -5 -1 -3 -1 Sample Output 3 思路,首先发现a[i]的值的范围是在1~n之间,每次插入我们可以直接把cnt[a[i]]++ 删除的时候,要把所有在后面的数往前挪一位,那么其实也相当于所有在后面的数的前面 的cnt的前缀和减去1,于是利用树状数组动态维护前缀和,利用前缀和来找到删除的元素 时间复杂度O(nlogn) #include<bits/stdc++.h> using namespace std; #defin…
http://codeforces.com/contest/101/problem/B 给定一个数n,起点是0  终点是n,有m两车,每辆车是从s开去t的,我们只能从[s,s+1,s+2....t-1]处上车,从t处下车., 问能否去到点n,求方案数 设L[x]表示有多少辆车能够到达x处. 只能从t处下车:说明只能单点更新,对于没辆车x,在区间[s,s+1,s+2....t-1]内上车是可以得,那么有多少辆车呢?明显就是∑区间里能到达的点.然后单点更新t即可 数据大,明显不能到达的点是没用的,离…
D. Factory Repairs 题目连接: http://www.codeforces.com/contest/635/problem/D Description A factory produces thimbles in bulk. Typically, it can produce up to a thimbles a day. However, some of the machinery is defective, so it can currently only produce…
题意 给定$n$个数,求最长上升子序列的方案数 根据数据范围要求是$O(n\log n)$ 朴素的dp方程式$f_i=max(f_j+1),a_i>a_j$,所以记方案数为$v_i$,则$v_i=v_i+v_j,(f_i=f_j+1)$,利用lis的$O(n\log n)$树状数组做法同时维护长度和方案数 从通酱博客里还看到更详尽的解释:stackoverflow 时间复杂度$O(n\log n)$ 代码 #include <bits/stdc++.h> using namespace…
题目传送门:F - Operations on a Matrix (atcoder.jp) 题意: 给一个N*M大小的零矩阵,以及Q次操作.操作1(l,r,x):对于 [l,r] 区间内的每列都加上x:操作2(i,x):对于第 i 行,替换为x:操作3(i,j):查询矩阵第 i 行,第 j 列元素的值. N.M.Q大小均为2E5. 思路:树状数组 首先考虑没有操作2的情况,那么很容易地就可以用树状数组实现对列的区间加及单点查询. 当有操作2时,对于操作3的查询:将该行最后一次操作2的行修改值记作…
题意 给一个数列\(a\),定义\(f(l,r)\)为\(b_1, b_2, \dots, b_{r - l + 1}\),\(b_i = a_{l - 1 + i}\),将\(b\)排序,\(f(l,r)\)=\(\sum\limits_{i = 1}^{r - l + 1}{b_i \cdot i}\) 计算\(\left(\sum\limits_{1 \le l \le r \le n}{f(l, r)}\right) \mod (10^9+7)\) 分析 考虑每个数字对答案的贡献,首先每…