前缀异或,\([1 \sim l-1]\)异或两次为\(0\),而\(0\)与任何数异或值都不变。
const int N=1e5+10;
int a[N];
int n,m;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i]^=a[i-1];
}
cin>>m;
while(m--)
{
int l,r;
cin>>l>>r;
int res=a[r]^a[l-1];
cout<<res<<endl;
}
//system("pause");
return 0;
}