太简单了没有思路,公式:b[后面坐标]-b[前面坐标减1](和上题思路一样)

zhangjinghao 2023-12-13 18:18:54 2023-12-13 18:19:06 5 返回题目

#include<bits/stdc++.h>
using namespace std;
int n,q,l,r,a[100010],b[100010];
int main(){
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(i!=1){
			b[i]=a[i] xor b[i-1];//xor代表异或,用前缀来异或 zjh翁星被注(今天刚知道这符号)
		}else{
			b[i]=a[i];
		}
	}
	for(int i=1;i<=q;i++){
		cin>>l>>r;
		int w=b[r] xor b[l-1];
		cout<<w<<endl; 
	}
	return 0;
} 
//奇变偶不变,符号看象限。(小知识) 
{{ vote && vote.total.up }}