標籤:class blog code get 2014 string
有工具在手,這題就是一個模板題,就是有點不清楚,最後問的是單個元素的值,它怎麼sum求出來的
#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>using namespace std;#define maxn 1005int c[maxn][maxn];int Row, Col;inline int Lowbit(const int &x){ return x & (-x);}int Sum(int i, int j){ int tempj, sum = 0; while (i > 0) { tempj = j; while (tempj > 0) { sum += c[i][tempj]; tempj -= Lowbit(tempj); } i -= Lowbit(i); } return sum;}void Update(int i, int j, int num){ int tempj; while (i <= Row) { tempj = j; while (tempj <= Col) { c[i][tempj] += num; tempj += Lowbit(tempj); } i += Lowbit(i); }}int main(){ #ifndef ONLINE_JUDGEfreopen("G:/1.txt","r",stdin);freopen("G:/2.txt","w",stdout);#endif int T;scanf("%d",&T);while(T--){ memset(c,0,sizeof(c));int N,Q;scanf("%d%d",&N,&Q);getchar();Row=N;Col=N;for(int i=1;i<=Q;i++){char ques;int a,b,c,d;scanf("%c ",&ques);//getchar();if(ques=='C'){scanf("%d%d%d%d",&a,&b,&c,&d);getchar();c++;d++;Update(a,b,1);Update(c,d,1);Update(c,b,-1);Update(a,d,-1);}else if(ques=='Q'){scanf("%d%d",&a,&b);getchar();printf("%d\n",1&Sum(a,b));}}printf("\n");}}