记录编号 128295 评测结果 AAAAAAAAAA
题目名称 zwei 最终得分 100
用户昵称 Gravatar奶猹 是否通过 通过
代码语言 C++ 运行时间 0.383 s
提交时间 2014-10-17 07:34:30 内存使用 1.05 MiB
显示代码纯文本
#include<cstdio>
#define lowbit(x) ((x)&(-x))
int n,m;
int a[100001],c[100001];
void add(int x,int num)
{
	while(x<=n)
	{
		c[x]=c[x]^num;
		x+=lowbit(x);
	}
}
int sum(int x)
{
	int tot=0;
	while(x>0)
	{
		tot=tot^c[x];
		x-=lowbit(x);
	}
	return tot;
}
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]);
		add(i,a[i]);
	}
	
	for(int i=1;i<=m;i++)
	{
		int x,l,r;
		scanf("%d%d%d",&x,&l,&r);
		if(x)
		printf("%d\n",sum(r)^sum(l-1));
		if(!x)
		{
			add(l,a[l]);
			add(l,r);
			a[l]=r;
		}
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}