随笔分类 - 数据结构—树状数组
摘要:题目链接Sequence IITime Limit: 5000/2500 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 331Accepted Submission(s): 151Probl...
阅读全文
摘要:题目链接题意:给一个n个数的序列a1, a2, ..., an ,这些数的范围是0~n-1, 可以把前面m个数移动到后面去,形成新序列:a1, a2, ..., an-1, an (where m = 0 - the initial seqence)a2, a3, ..., an, a1 (wher...
阅读全文
摘要:题目链接题意:给出数组A,定义f(l,r,x)为A[]的下标l到r之间,等于x的元素数。i和j符合f(1,i,a[i])>f(j,n,a[j]),求i和j的种类数。我们可以用map预处理出f(1, i, a[i])和f(j, n, a[j]),记为s1[n], s2[n]。这样就变成求满足s1[i]...
阅读全文
摘要:题目:http://poj.org/problem?id=2352题意:给出n个星星的坐标, 每个星星的左下角有几个星星,该星星的level 就是几。求level为0~n-1的个数。本来想用线段树做,但是线段树还没理解好,做不出来, 就用树状数组做了。。。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const int maxn = 32010; 7 int c[maxn], lev[15010]; 8 9 void init()10 {11 for(int i = 1; i 0)...
阅读全文
摘要:树状数组支持两种操作:Add(x, d)操作: 让a[x]增加d。Query(L,R): 计算 a[L]+a[L+1]……a[R]。当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组.通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成.在二维情况下:数组A[][]的树状数组定义为: C[x][y] = ∑ a[i][j], 其中, x-lowbit(x) + 1 2 #include 3 #include 4 #include 5 #...
阅读全文
摘要:题目:http://poj.org/problem?id=3321 题意: 苹果树上n个分叉,Q是询问,C是改变状态。。。。 开始的处理比较难,参考了一下大神的思路,构图成邻接表 并 用DFS编号 白书上一维树状数组模板: AC代码:
阅读全文

浙公网安备 33010602011771号