树状数组板子C++

 1 int n;
 2 int a[1005],c[1005]; //对应原数组和树状数组
 3 
 4 int lowbit(int x){
 5     return x&(-x);
 6 }
 7 
 8 void updata(int i,int k){    //在i位置加上k
 9     while(i <= n){
10         c[i] += k;
11         i += lowbit(i);
12     }
13 }
14 
15 int getsum(int i){        //求A[1 - i]的和
16     int res = 0;
17     while(i > 0){
18         res += c[i];
19         i -= lowbit(i);
20     }
21     return res;
22 }

 

posted on 2023-02-20 20:58  么么打123  阅读(16)  评论(0编辑  收藏  举报