前缀异或,([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;
}