//
#include<cstdio>
#include<cstring>
const int maxn = 1005;
int c[maxn][maxn],n,t,T;
int lowbit(int x)
{
return x & (-x);
}
void update(int x,int y,int d)
{
if(x==0 || y==0) return;
for(int i=x;i<=n;i+=lowbit(i))
{
for(int j=y;j<=n;j+=lowbit(j))
{
c[i][j]+=d;
}
}
}
int query(int x,int y)
{
int ans=0;
for(int i=x;i>0;i-=lowbit(i))
{
for(int j=y;j>0;j-=lowbit(j))
{
ans+=c[i][j];
}
}
return ans;
}
int main()
{
char contrl[2];
int x1,y1,x2,y2,x,y;
scanf("%d",&T);
for(int kcase=1;kcase<=T;kcase++)
{
if(kcase>1) printf("\n");
scanf("%d %d",&n,&t);
for(int i=0;i<=n;i++)
{
for(int j=0;j<=n;j++)
{
c[i][j]=0;
}
}
while(t--)
{
scanf("%s",contrl);
if(contrl[0]=='C')
{
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
update(x1-1,y1-1,1);update(x1-1,y2,1);
update(x2,y1-1,1);update(x2,y2,1);
}
else if(contrl[0]=='Q')
{
scanf("%d %d",&x,&y);
int h=query(n,n)-query(x-1,n)-query(n,y-1)+query(x-1,y-1);
printf("%d\n",h%2);
}
}
}
return 0;
}
poj2155(樹狀數組)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.