二维树状数组

模板

 1 int c[1010][1010];
 2 int n,t;
 3 
 4 int lowbit(int x){
 5     return x&(-x);
 6 }
 7 
 8 void updata(int x,int y){
 9     for(int i=x;i<=n;i+=lowbit(i)){
10         for(int j=y;j<=n;j+=lowbit(j))
11             c[i][j]=!c[i][j];
12     }
13 }
14 
15 int getsum(int x,int y){
16     int sum=0;
17     for(int i=x;i>0;i-=lowbit(i)){
18         for(int j=y;j>0;j-=lowbit(j))
19             sum+=c[i][j];
20     }
21     return sum;
22 }

 

posted @ 2017-08-04 12:14  yZi  阅读(136)  评论(0编辑  收藏  举报