比赛 EYOI常规赛9 3/4th 评测结果 AAAAAAAAAA
题目名称 zwei 最终得分 100
用户昵称 ムラサメ 运行时间 0.950 s
代码语言 C++ 内存使用 3.99 MiB
提交时间 2023-03-28 17:24:45
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[100010],b[100010];
int lowbit(int x){
	return x&(-x);
}
void add(int x,int y){
	while(x<=n){
		a[x]^=y;
		x+=lowbit(x);
	}
}
int sum(int x){
	int ans=0;
	while(x>0){
		ans^=a[x];
		x-=lowbit(x);
	}
	return ans;
}
int main(){
	//私のオナニーを見て下さいっ
	freopen("zwei.in","r",stdin);
	freopen("zwei.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
    	cin>>b[i];
    	add(i,b[i]);
	}
	int x,y,z;
	for(int i=1;i<=m;i++){
		cin>>z>>x>>y;
		if(z==0){
			add(x,b[x]);
			add(x,y);
			b[x]=y;
		}
		else{
			cout<<(sum(x-1)^sum(y))<<endl;
		}
	}
    return 0;
}