树状数组
树状数组是一种可以快速区间操作的算法,与差分不同的是,树状数组是在线,和线段树一样,而差分则是离线。下面我就来讲一讲。
1.简介
树状数组一共有3个步骤,分别是:lowbit、增加结点数值、查询,并且附有main函数。
2.代码
1.lowbit
int lowbit(int x){
return x & -x;
}
2.增加结点数值
int n, tree[100005];//n和树状数组
void add(int x, int v){//x为增加数值的结点编号,v为增加的数值
while (x <= n){
t[x] += v;
x += lowbit(x);
}
}
3.查询
int check(int x){
int sum = 0;
while (0
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
c++算法大全 文章被收录于专栏
本专栏收集了c++大部分基础算法,附有简介和代码。