样例已过,0分WA
查看原帖
样例已过,0分WA
785636
2022_37_yzyUUU楼主2024/5/16 18:34
#include<bits/stdc++.h>
using namespace std;
long long n,ans[1000006],q,a[10004];
struct ask666{
	int id,l,r;
}p[10000006];
bool cmp(ask666 x,ask666 y){
	if(x.l!=y.l)return x.l<y.l;
	return x.r<y.r;
}
long long ask1(int l,int r){
	int t;
	for(int i=l;i<=r;i++){
		t^=(a[i]-a[l-1]);
	}return t;
}
long long ask2(int o,int l,int r){
	int t;
	for(int i=l;i<=r;i++){
		t^=(a[i]-a[o-1]);
	}return t;
}
int main(){
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		a[i]+=a[i-1];
	}
	for(int i=1;i<=q;i++){
		cin>>p[i].l>>p[i].r;
		p[i].id=i;
	}
	sort(p+1,p+q+1,cmp);
	for(int i=1;i<=q;i++){
		if(p[i].l==p[i-1].l)
			ans[p[i].id]=ans[p[i-1].id]^ask2(p[i].l,p[i-1].r+1,p[i].r);
		else 
			ans[p[i].id]=ask1(p[i].l,p[i].r);
	}
	for(int i=1;i<=q;i++){
		cout<<ans[i]<<"\n";
	}
}
2024/5/16 18:34
加载中...