摘要: 树状数组支持两种操作: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 #... 阅读全文
posted @ 2014-02-15 20:11 水门 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=3321 题意: 苹果树上n个分叉,Q是询问,C是改变状态。。。。 开始的处理比较难,参考了一下大神的思路,构图成邻接表 并 用DFS编号 白书上一维树状数组模板: AC代码: 阅读全文
posted @ 2014-02-15 19:49 水门 阅读(232) 评论(0) 推荐(0) 编辑