算法学习:树状数组(单点修改,区间修改等)

Posted rentu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法学习:树状数组(单点修改,区间修改等)相关的知识,希望对你有一定的参考价值。

 

【lowbit】

1 #define lowbit(x) x&(-x)

【单点修改】

1 void add(int pos, int k)
2 {
3     while (pos <= n)
4     {
5         tree[pos] += k;
6         pos += lowbit(pos);
7     }
8 }

【区间询问】

 1 ll sum(int pos)
 2 {
 3     ll ret = 0;
 4     while (pos)
 5     {
 6         ret += tree[pos];
 7         pos -= lowbit(pos);
 8     }
 9     return ret;
10 }

 

以上是关于算法学习:树状数组(单点修改,区间修改等)的主要内容,如果未能解决你的问题,请参考以下文章

算法系列学习线段树vs树状数组 单点修改,区间查询 [kuangbin带你飞]专题七 线段树 A - 敌兵布阵

树状数组

树状数组的建树 单点修改 单点查询 区间修改 区间查询

P3374 模板树状数组 1(单点修改区间查询)(树状数组)

浅析树状数组

树状数组从入门到弃疗