CF1847C Vampiric Powers, anyone? 题解
Coffee_zzz · · 题解
分析
我们在数列
异或很多个数我们是不好处理的,所以我们考虑求出数列
接下来我们的问题就转化成了,在
首先思考
发现
现在,暴力做法的第二重循环可以枚举
注意不能两重循环都枚举
代码
const int N=1e5+5,P=256;
int n,a[N],x[N],q[1<<9],ans,temp;
void solve(){
n=read(),ans=0;
for(int i=1;i<=n;i++) a[i]=read();
for(int i=1;i<=n;i++) x[i]=x[i-1]^a[i];
for(int i=0;i<=n;i++) q[x[i]]=temp;
for(int i=0;i<=n;i++) for(int p=0;p<P;p++) if(q[p]==temp) ans=max(ans,x[i]^p);
cout<<ans<<endl;
}
signed main(){
int T;
// cin>>T;
T=read();
for(temp=1;temp<=T;temp++) solve();
return 0;
}