作者:爱在dl集体中 | 来源:互联网 | 2023-06-09 11:29
题意:需要求翻转次数。奇数就是翻成了1,偶数还是0。所以最后的结果余2就可以了。
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxx=1005;
const int inf=0x3f3f3f3f;
int bit[maxx][maxx];
int a;
int n,m;
int s,t;
int lowbit(int x){return x&(-x);
}
void add(int x,int y){for(int i&#61;x;i<&#61;n;i&#43;&#61;lowbit(i)){for(int j&#61;y;j<&#61;n;j&#43;&#61;lowbit(j)){bit[i][j]&#43;&#43;;}}
}
int sum(int x,int y){int s&#61;0;for(int i&#61;x;i>&#61;1;i-&#61;lowbit(i)){for(int j&#61;y;j>&#61;1;j-&#61;lowbit(j)){s&#43;&#61;bit[i][j];}}return s;
}
int main(){int tt;scanf("%d",&tt);char s[5];while(tt--){memset(bit,0,sizeof(bit));scanf("%d %d",&n,&m);for(int i&#61;1;i<&#61;m;i&#43;&#43;){cin>>s;if(s[0]&#61;&#61;&#39;C&#39;){int x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;add(x1,y1);add(x2&#43;1,y1);add(x1,y2&#43;1);add(x2&#43;1,y2&#43;1);}else{int x,y;cin>>x>>y;cout<<sum(x,y)%2<<endl;}}cout<<endl;}return 0;
}