现在的位置: 首页 > 综合 > 正文

poj 2155 Matrix (二维树状数组)

2018年03月17日 ⁄ 综合 ⁄ 共 753字 ⁄ 字号 评论关闭
这道我没什么想说的,看解题报告的
//4456K   
485MS

#include <stdio.h>
#include <string.h>
#define lowbit(x) (x&(-x))
#define M 1050
int ar[M][M];
int n;

void updata (int i,int j)
{
    int
tmp;
    while (i
> 0)
    {
       
tmp = j;
       
while (tmp > 0)
       
{
           
ar[i][tmp] ^= 1;
           
tmp -= lowbit(tmp);
       
}
       
i -= lowbit(i);
    }
}

int query (int i,int j)
{
    int ans =
0;
    int
tmp;
    while (i
<= n)
    {
       
tmp = j;
       
while (tmp <= n)
       
{
           
ans ^= ar[i][tmp];
           
tmp += lowbit(tmp);
       
}
       
i += lowbit(i);
    }
    return
ans;
}
int main ()
{
    int
t,m,x1,y1,x2,y2;
    char
op;
    scanf
("%d",&t);
    while (t
--)
    {
       
memset (ar,0,sizeof(ar));
       
scanf ("%d%d",&n,&m);
       
while (m --)
       
{
           
getchar ();
           
scanf("%c",&op);
           
if (op == 'C')
           
{
               

抱歉!评论已关闭.