树状数组
2021-04-21 03:29
标签:简单 修改 线段树 res 操作 color get 比较 二进制 树状数组能做的线段树都可以,但是有的时候为了代码简单,能写树状数组就不写线段树。 树状数组是一种类似线段树的数据结构,只不过树状数组上的操作比较简单,最简单的就是单点修改和区间查询 树状数组是按照数的二进制形式进行存储数据,s[1]存储的是a[1] ,s[2]存储的是a[1]+a[2] ,s[3]存储的是a[3],s[4]存储的是a[1]+a[2]+a[3]+a[4]依次类推 code: 相比较线段树来说,树状数组的板子看起来好简单,以后还是多使用这个吧 树状数组 标签:简单 修改 线段树 res 操作 color get 比较 二进制 原文地址:https://www.cnblogs.com/kstranger/p/13282823.htmlint lowbit(int x){
return x & -x;
}
void add(int x,int v){
for(int i=x;ilowbit(i)){
s[i]+=v;
}
}
int get(int x){
int res=0;
for(int i=x;i;i-=lowbit(i)){
res+=s[i];
}
return res;
}