#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define MAX 1000+3
using namespace std;
int n,i;
int f[4*MAX][4*MAX];
void build_y(int x,int y,int la,int ra)
{
f[x][y]=0;
if(la==ra)
return;
int mid=(la+ra)/2;
build_y(x,2*y,la,mid);
build_y(x,2*y+1,mid+1,ra);
}
void build_x(int x,int la,int ra)
{
build_y(x,1,1,n);
if(la==ra)
return;
int mid=(la+ra)/2;
build_x(2*x,la,mid);
build_x(2*x+1,mid+1,ra);
return;
}
int ans;
void modify_y(int x,int y,int la,int ra,int y1,int y2)
{
if(y1<=la&&y2>=ra)
{
f[x][y]^=1;
return ;
}
int mid=(la+ra)/2;
if(y1<=mid)
modify_y(x,2*y,la,mid,y1,y2);
if(y2>mid)
modify_y(x,2*y+1,mid+1,ra,y1,y2);
}
void modify_x(int x,int la,int ra,int x1,int y1,int x2,int y2)
{
if(x1<=la&&ra<=x2)
{
modify_y(x,1,1,n,min(y1,y2),max(y1,y2));
return;
}
int mid=(la+ra)/2;
if(x1<=mid)
modify_x(2*x,la,mid,x1,y1,x2,y2);
if(x2>mid)
modify_x(2*x+1,mid+1,ra,x1,y1,x2,y2);
// return ;
}
void ask_y(int x,int y,int la,int ra,int u)
{
//cout<<ans<<' '<<f[x][y]<<endl;
ans^=f[x][y];
if(la==ra/*&&la==u*/)
{
//ans=f[x][y];
return ;
}
int mid=(la+ra)/2;
if(u<=mid)
ask_y(x,2*y,la,mid,u);
if(u>mid)
ask_y(x,2*y+1,mid+1,ra,u);
//return ;
}
void ask_x(int x,int la,int ra,int x0,int y0)
{
ask_y(x,1,1,n,y0);
if(la==ra)
{
// ask_y(x,1,1,n,y0);
return;
}
int mid=(la+ra)/2;
if(x0<=mid)
ask_x(2*x,la,mid,x0,y0);
if(x0>mid)
ask_x(2*x+1,mid+1,ra,x0,y0);
//return;
}
int main()
{
int mm,m;
cin>>mm;
for(int ii=1;ii<=mm;ii++)
{
cin>>n>>m;
//cout<<"M=="<<m<<endl;
build_x(1,1,n);
//cout<<"___"<<endl;
for(i=1;i<=m;i++)
{
//cout<<i<<"I"<<endl;
char ch;
while(ch!='C'&&ch!='Q')
scanf("%c",&ch);
//cout<<ch<<endl;
if(ch=='C')
{
int a1,a2,a3,a4;
scanf("%d%d%d%d",&a1,&a2,&a3,&a4);
modify_x(1,1,n,a1,a2,a3,a4);
/* for(int j=1;j<=7;j++)
for(int k=1;k<=7;k++)
cout<<j<<' '<<k<<' '<<f[j][k]<<endl;//*/
}
else
{
ans=0;
int a1,a2;
scanf("%d%d",&a1,&a2);
//cout<<a1<<' '<<a2<<endl;
//cout<<"___"<<endl;
ask_x(1,1,n,a1,a2);
printf("%d\n",ans);
}
ch='A';
}
if(ii<mm)
cout<<endl;
}
cout<<"_____"<<endl;
}
楼教主的线段树。。大概写了三个小时,中间各种傻X错误啊。。其实二维线段树根本没有想得的那么难写。。