树状数组

2019-05-22 06:26:47来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

lowbit(x)=2^k
int
lowbit(int t) { return t & (-t); }
单点更新
x是更改的位置,y是更改的值
void
add(int x, int y) { for (int i = x; i <= n; i += lowbit(i)) tree[i] += y; }
求A数组中前x项的和 
int
getsum(int x) { int ans = 0; for (int i = x; i > 0; i -= lowbit(i)) ans += tree[i]; return ans; }

大佬的解释

https://www.cnblogs.com/hsd-/p/6139376.html

 


原文链接:https://www.cnblogs.com/Artimis-fightting/p/10897107.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C++中的const分析

下一篇:类———用类定义对象———error:C++表达式必须包含类类型