codeforces 252 A. Little Xor
问最大的区间异或和
看到n<=100开心n3了;
但有一个性质可以把降到n2
ai^ai+1^ai+2^ai+3^ai+4...aj
==s(i-1)^sj;
求一遍前缀和再枚举区间即可
关于异或有一些很神奇的性质,cf的某道c题就是以这个为基础开脑洞的。
即x^0=x;
x^x=0;
x^x^x=x;
...
那么对于异或和我们可以搞一些玄学合并。。
----
虽然也不知道第一次写的哪里挂掉了..
#include<bits/stdc++.h> using namespace std; long long a[200]; int main( ) { int n; cin>>n; // for(int i=1;i<=n;i++) { cin>>a[i]; } long long maxn=-1; for(int l=1;l<=n;l++) { //long long tmp=a[l]; //maxn=max(maxn,tmp); for(int r=l;r<=n;r++) { long long tmp=a[l]; for(int i=l+1;i<=r;i++) { tmp^=a[i]; } maxn=max(maxn,tmp); } } cout<<maxn; }