题目链接:http://202.118.31.226/contest/26/problem/5
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<string.h>
using namespace std;
int c[10000000+10];
int N=10000000+10;
int sum(int x)
{
int ret=0,i,j;
for(i=x;i>0;i-=(i&-i))
{
ret^=c[i];
}
return ret;
}
void add(int x,int d)
{
int i;
for(i=x;i<=N;i+=(i&-i))
{
c[i]=(c[i]^d);
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(c,0,sizeof(c));
int n,m;
scanf("%d%d",&n,&m);
int i,q,w;
for(i=1;i<=n;i++)
{
int d;
scanf("%d",&d);
add(i,d);
// for(int ui=1;ui<=4;ui++)
// {
// printf("sum[%d]=%d\n",ui,sum(ui));
// }
}
for(i=1;i<=m;i++)
{
char s[10];
scanf("%s",s);
if(s[0]=='C')
{
int c1,c2;
scanf("%d%d",&c1,&c2);
c2=(sum(c1)^sum(c1-1))^c2;
add(c1,c2);
}
if(s[0]=='Q')
{
int q1,q2;
scanf("%d%d",&q1,&q2);
printf("%d\n",sum(q2)^sum(q1-1));
}
// for(int ii=1;ii<=4;ii++)
// {
// printf("sum[%d]=%d\n",ii,sum(ii)^sum(ii-1));
// }
}
}
return 0;
}