Unlike in the past, this tree array is two-dimensional, and that's all.
#include <iostream>#include<cstdio>#include<cstring>#include<map>#include<algorithm>using namespacestd;intn,c[1100][1100];intLowbit (intk) { returnk& (-k);}voidAddintXintYintnum) { for(inti = x; I <= N; i + =lowbit (i)) for(intj = y; J <= N; J + =Lowbit (j)) C[i][j]+=num;}intCalintXinty) { intsum =0; for(inti = x; I >=1; I-=lowbit (i)) for(intj = y; J >=1; J-=Lowbit (j)) Sum+=C[i][j]; returnsum;}intMain () {intx; scanf ("%d",&x); while(x--) { intT; Memset (c,0,sizeof(c)); scanf ("%d%d",&n,&t); Charop; while(t--) {cin>>op; if(OP = ='C') { intX1,y1,x2,y2; scanf ("%d %d%d%d",&x1,&y1,&x2,&y2); X1++,x2++,y1++,y2++; Add (X2,y2,1); Add (x1-1, y1-1,1); Add (x1-1, Y2,1); Add (x2,y1-1,1); } Else { intx, y; scanf ("%d%d",&x,&y); //++x,++y intAns = cal (x, y);//-Cal (X-1,y-1)-Cal (X-1,y)-Cal (x,y-1);Ans%=2; printf ("%d\n", ans); }} puts (""); } return 0;}
POJ 2155 Matrix