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;     }


原创粉丝点击