poj 2155 Matrix (二维树状数组)
2013-04-23 09:25
176 查看
这道我没什么想说的,看解题报告的
//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')
{
scanf
("%d%d%d%d",&x1,&y1,&x2,&y2);
updata (x2,y2);
updata (x1-1,y2);
updata (x2,y1-1);
updata (x1-1,y1 -1);
}
else
{
scanf ("%d%d",&x1,&y1);
printf ("%d\n",query(x1,y1));
}
}
printf ("\n");
}
return
0;
}
//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')
{
scanf
("%d%d%d%d",&x1,&y1,&x2,&y2);
updata (x2,y2);
updata (x1-1,y2);
updata (x2,y1-1);
updata (x1-1,y1 -1);
}
else
{
scanf ("%d%d",&x1,&y1);
printf ("%d\n",query(x1,y1));
}
}
printf ("\n");
}
return
0;
}
相关文章推荐
- POJ 2155 Matrix(二维树状数组模板)
- POJ Matrix ( 二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- poj 2155 Matrix(二维树状数组)(经典)
- [poj 2155] Matrix(二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- POJ2155 - Matrix (二维树状数组)
- poj-2155 Matrix(二维树状数组)
- POJ 2155 Matrix (二维树状数组+经典题)
- POJ 2155 Matrix(二维树状数组)
- POJ 2155 Matrix (二维树状数组)
- poj 2155 Matrix(二维树状数组)(经典)
- POJ 2155 Matrix (二维树状数组)
- POJ2155 Matrix(二维树状数组)
- (POJ 2155)Matrix (复习必看题)经典二维树状数组题目 + 树状数组的论文讲解
- POJ-2155 Matrix 二维线段树 | 树状数组
- POJ 2155 Matrix (二维树状数组)
- poj 2155 Matrix(二维树状数组)(经典)
- POJ 2155 Matrix 二维树状数组
- poj 2155 Matrix(二维树状数组)