树状数组(Binary Indexed Tree(BIT))

先不说别的,这个博客为我学习树状数组提供了很大帮助,奉上传送门

http://blog.csdn.net/int64ago/article/details/7429868

然后就说几个常用的操作

1 inline int lowbit(int x)
2 {
3     return x&(-x);
4 }
 1 int read(int x)
 2 {
 3     int sum=0;
 4     while(x)
 5     {
 6         sum+=bit[x];
 7         x-=lowbit(x);
 8     }
 9     return sum;
10 }
1 void add(int x,int num)
2 {
3     while(x<=n)
4     {
5         bit[x]+=num;
6         x+=lowbit(x);
7     }
8 }

 

你可能感兴趣的:(树状数组(Binary Indexed Tree(BIT)))