样例已过,0分,玄关
查看原帖
样例已过,0分,玄关
1020063
chenxi2009楼主2024/7/24 11:43
#define int long long
using namespace std;
int n,q,op,u,l,a[200001],c[200001][2];
inline int lowbit(int x){
	return x & -x;
}
inline void upd(int x,int y,int z){
	for(;x <= n;x += lowbit(x)){
		c[x][z] ^= y;
	}
}
inline int sum(int x,int z){
	int rtn = 0;
	for(;x;x -= lowbit(x)){
		rtn ^= c[x][z];
	} 
	return rtn;
}
signed main(){
	scanf("%lld%lld",&n,&q);
	for(int i = 1;i <= n;i ++){
		scanf("%lld",&a[i]);
		upd(i,a[i],i & 1);
	}
	for(int i = 1;i <= q;i ++){
		scanf("%lld%lld%lld",&op,&u,&l);
		if(op == 1){
			upd(u,a[u] ^ l,u & 1);
		}
		else{
			if((l + u) & 1){
				printf("0\n");
			}
			else{
				printf("%lld\n",sum(l,u & 1) - sum(u - 1,u & 1));
			}
		}
	}
	return 0;
}```
2024/7/24 11:43
加载中...