#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <fstream>
#define N 1004
using namespace std;
int tree[N][N],n;
int lowbit(int k)
{
return k&(-k);
}
int Modify(int x,int y)
{
int i,j;
for(i = x;i <= n;i+=lowbit(i))
{
for(j = y;j <= n;j+=lowbit(j))
{
tree[i][j] ++;
}
}
}
int sum(int x,int y)
{
int ans = 0,i,j;
for(i = x;i > 0;i-=lowbit(i))
{
for(j = y;j > 0;j-=lowbit(j))
{
ans += tree[i][j];
}
}
return ans;
}
int main()
{
int i,j,k,m,t,x1,x2,y1,y2;
char ch;
scanf("%d",&t);
while (t--)
{
memset(tree,0,sizeof(tree));
scanf("%d%d",&n,&k);
getchar();
while (k--)
{
scanf("%c",&ch);
if(ch=='C')
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
Modify(x1,y1);//修改矩阵,求点
Modify(x1,y2+1);
Modify(x2+1,y1);
Modify(x2+1,y2+1);
}
else
{
scanf("%d%d",&x1,&y1);
m = sum(x1,y1);
//数组中记录的是修改的次数,对2求余为其现在的值
printf("%d\n",m&1);
}
getchar();
}
if(t)
printf("\n");
}
return 0;
}
poj 2155
最新推荐文章于 2022-12-28 11:12:37 发布