zoukankan      html  css  js  c++  java
  • poj 2155 Matrix

     1 #include<cstdio>
     2 #include<cstring>
     3 const int maxn=1000+5;
     4 int n,m;
     5 int s[maxn][maxn];
     6 int lowbit(int x)
     7 {
     8     return x&-x;
     9 }
    10 int sum(int x,int y)
    11 {
    12     int ret=0;
    13     for(int i=x;i>0;i-=lowbit(i))
    14         for(int j=y;j>0;j-=lowbit(j))
    15           ret+=s[i][j];
    16     return ret;
    17 }
    18 void add(int x,int y,int inc)
    19 {
    20     for(int i=x;i<=n;i+=lowbit(i))
    21         for(int j=y;j<=n;j+=lowbit(j))
    22          s[i][j]+=inc;
    23 }
    24 int main()
    25 {
    26     int t;
    27     scanf("%d",&t);
    28     while(t--)
    29     {
    30         memset(s,0,sizeof(s));
    31         scanf("%d%d",&n,&m);
    32         char com[5];
    33         int x1,y1,x2,y2;
    34         for(int i=0;i<m;i++)
    35         {
    36             scanf("%s",com);
    37             if(com[0]=='C')
    38             {
    39                 scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
    40                 add(x1,y1,1);
    41                 add(x2+1,y2+1,1);
    42                 add(x1,y2+1,-1);
    43                 add(x2+1,y1,-1);
    44             }
    45             else
    46             {
    47                 int x,y;
    48                 scanf("%d%d",&x,&y);
    49                 int ans=sum(x,y);
    50                 printf("%d
    ",ans%2);
    51             }
    52         }
    53         if(t)
    54             printf("
    ");
    55     }
    56     return 0;
    57 }
  • 相关阅读:
    并查集基础练习
    HDU1232——畅通工程
    二分答案——划分数列
    二分答案——收入计划
    动态规划练习题(2)
    动态规划程序设计2
    动态规划练习题(1)
    0/1背包
    P5024 保卫王国[倍增+dp]
    UVA11424 GCD
  • 原文地址:https://www.cnblogs.com/sooflow/p/3263078.html
Copyright © 2011-2022 走看看