B. AGAGA XOOORRR
留下xx或者xxx
x^x=0
xxx^=0^x=x
从左向右异或过去
结果先成为x,然后成为0,最后变成x
#include<bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f using namespace std; const ll maxn = 2e3+10; ll n,a[maxn],t; int main(){ ios::sync_with_stdio(false); cin>>t; while(t--){ cin>>n; for(int i=1;i<=n;++i)cin>>a[i]; ll tmp=0; for(int i=1;i<=n;++i){ tmp=tmp^a[i]; } if(tmp==0){ cout<<"YES\n"; continue; } ll now=0,sta=0; for(int i=1;i<=n;++i){ now=now^a[i]; if(now==tmp&&sta==0)sta=1; if(now==0&&sta==1)sta=2; if(now==tmp&&sta==2)sta=3; } if(sta==3) cout<<"YES\n"; else cout<<"NO\n"; } return 0; }