题解:P8034 [COCI2015-2016#7] Ozljeda
思路:可以利用前缀和来解决。
因为
所以
有了这个公式,这道题就可以轻松解决。
代码如下:
#include <bits/stdc++.h>
using namespace std;
long long k,a[100010],q,l,r;
int main(){
cin>>k;
for (int i=1;i<=k;++i){
cin>>a[i];
a[i]^=a[i-1];
}
cin>>q;
while (q--){
long long l,r,ans=0;
cin>>l>>r;
l--;
l%=(k+1);
r%=(k+1);
cout<<(a[r]^a[l])<<endl;
}
return 0;
}