| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:水之!!!In Reply To:水之!!! Posted by:wocha at 2012-08-15 16:26:16 > #define stop system("pause")
> #include <cstdio>
> #include <cstdlib>
> #include <iostream>
> #define N 1100
> using namespace std;
> int lowbit(int i){
> return (i&(-i));
> }
> int c[N][N],n;
> void updat(int x,int y,int val){
> for (;x<=n;x+=lowbit(x))
> for (int i=y;i<=n;i+=lowbit(i))
> c[x][i]+=val;
>
>
> }
> int getsum(int x,int y){
> int sum = 0;
> for( ;x;x-=lowbit(x))
> for(int i=y;i;i-=lowbit(i))
> sum += c[x][i];
> return sum;
> }
> int main(){
> int ca;
> cin>>ca;int o=0;
> while(ca--){
> if(o) puts("");
> o++;
> int m;
> memset(c,0,sizeof(c));
> scanf("%d%d",&n,&m);
> while(m--){
> char str[55];
> scanf("%s",str);
> if(str[0]=='C'){
> int x1,x2,y1,y2;
> scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
> updat(x1, y1, 1);
> updat(x2 + 1, y2 + 1, -1);
> updat(x1, y2 + 1, -1);
> updat(x2 + 1, y1, -1);
> }
> else {
> int a,d;
> cin>>a>>d;
> printf("%d\n",getsum(a,d)&1);
> }
> }
> }
> }
你这个代码有点问题吧。根据容斥原理应该是updat(x2 + 1, y2 + 1, 1);才对
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator