⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p2155.cpp

📁 大概POJ上50道比较难的题的代码
💻 CPP
字号:
#include <iostream>
using namespace std;
const int MAXN = 1010;
bool c[MAXN][MAXN];
int N,n,t;
inline int lowbit(int x){
       return x & (-x);
}
void change(int x,int y){
    int t;
    while(x <= n){
        t = y;
        while(t <= n){
            c[x][t] ^= 1;
            t += lowbit(t);
        }
        x += lowbit(x);
    }
}
int sum(int x,int y){
    int t,res(0);
    while(x > 0){
        t = y;
        while(t > 0){
            res ^= c[x][t];
            t -= lowbit(t);
        }
        x -= lowbit(x);
    }
    return res;
}

int main(){
    char ch;
    int x1,y1,x2,y2;
    cin >> N;
    while(N--){
        memset(c,0,sizeof(c));
        scanf("%d%d",&n,&t);
        for(int i = 0;i < t;++i){
            cin >> ch;
            if(ch == 'C'){
                scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
                change(x1,y1);
                change(x2+1,y1);
                change(x1,y2+1);
                change(x2+1,y2+1);
            }
            else{
                scanf("%d%d",&x1,&y1);
                printf("%d\n",sum(x1,y1));
            }
        }
        if(N) puts("");
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -