HDU2642 Stars 二维树状数组
来源:互联网 发布:高中数学网络教学 编辑:程序博客网 时间:2024/05/18 23:11
//很纯的二维树状数组#include "TreeArray.h"#include <iostream>using namespace std;int main(){bool flag[MAX][MAX];TreeArray ta(2);int m,x1,x2,y1,y2; char op;while(scanf("%d",&m)!=EOF){memset(flag, 0, sizeof(flag)); ta.clear();while(m--){getchar();scanf("%c", &op);if(op == 'B'){scanf("%d%d",&x1,&x2); x1++; x2++; if(flag[x1][x2])continue; flag[x1][x2] = 1; ta.modify(x1,x2,1); }else if(op=='D'){scanf("%d%d",&x1,&x2); x1++; x2++; if(!flag[x1][x2])continue; flag[x1][x2] = 0; ta.modify(x1,x2,-1); }else{scanf("%d%d%d%d",&x1,&x2,&y1,&y2); x1++,x2++,y1++,y2++; if(x1>x2)swap(x1,x2); if(y1>y2)swap(y1,y2); printf("%d\n",ta.sum(x2,y2)+ta.sum(x1-1,y1-1)-ta.sum(x1-1,y2)-ta.sum(x2,y1-1)); } } } return 0; }