记录编号 128151 评测结果 AAAAAAAAAA
题目名称 zwei 最终得分 100
用户昵称 Gravatar水中音 是否通过 通过
代码语言 C++ 运行时间 0.373 s
提交时间 2014-10-16 21:21:02 内存使用 1.08 MiB
显示代码纯文本
# include <iostream>
# include <cstdio>
using namespace std;
int n,m,zj1,zj2,zj3,a[100005],c[100005];
int lowbit(int x){return x&(-x);}
int main()
{
	freopen("zwei.in","r",stdin);
	freopen("zwei.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		zj1=i;
		while(zj1<=100005)
		{
			c[zj1]=c[zj1]^a[i];
			zj1+=lowbit(zj1);
		}
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&zj1,&zj2,&zj3);
		if(zj1)
		{
			int temp=0,temp2=0;
			zj2--;
			while(zj2)
			{
				temp^=c[zj2];
				zj2-=lowbit(zj2);
			}
			while(zj3)
			{
				temp2^=c[zj3];
				zj3-=lowbit(zj3);
			}
			temp^=temp2;
			printf("%d\n",temp);
		}
		else
		{
			zj1=zj2;
			while(zj1<=100005)
			{
				c[zj1]=c[zj1]^a[zj2];
				zj1+=lowbit(zj1);
			}//return原来的值 
			zj1=zj2; 
			while(zj1<=100005)
			{
				c[zj1]=c[zj1]^zj3;
				zj1+=lowbit(zj1);
			}//亦或新的值新 
			a[zj2]=zj3;//更改 
		}
	}
	return 0;
}