#include <cstdio>
#include <algorithm>
using namespace std;
/*代码来自大佬*/
const int kMax = 1000 + 10;
int n;
int num[kMax][kMax];
inline int lowbit(int x) { return x & -x; }
int getsum(int x, int y) {
int res = 0;
for(int i = x;i;i -= lowbit(i)) {
for(int j = y;j;j -= lowbit(j)) {
res += num[i][j];
}
}
return res%2;//取余2不理解,可能是题目没说明,可能这是矩阵的值
}
void add(int x, int y) {
for(int i = x;i <= n;i += lowbit(i)) {
for(int j = y;j <= n;j += lowbit(j)) {
num[i][j] = (num[i][j] + 1) % 2;
}
}
}
int main() {
int t, x1, x2, y1, y2;
char op;
scanf("%d%d", &n, &t);
while(t --) {
scanf("\n%c%d%d", &op, &x1, &y1);
if(op == 'C') {
scanf("%d%d", &x2, &y2);
add(x1, y1);
add(x2 + 1, y1);
add(x1, y2 + 1);
add(x2 + 1, y2 + 1);
} else {
printf("%d\n", getsum(x1, y1));
}
}
return 0;
}
二维数组数组之模板1
最新推荐文章于 2022-10-15 21:24:01 发布