思路参考:蓝桥杯2021年第十二届省赛-异或数列_zy98zy998的博客-CSDN博客_蓝桥杯异或数列
#include<iostream>
#include<algorithm>
#include<map>
#include<cstring>
#include<queue>
using namespace std;
typedef long long ll;
const int N=2e5+5;
ll w[N];
int n;
int cnt[25];
void op(ll x)
{
int t=0;
while(x)
{
t++;
if(x&1) cnt[t]++;
x>>=1;
}
}
void solve()
{
memset(cnt,0,sizeof cnt);
int sum=0;
for(int i=1;i<=n;i++) op(w[i]),sum^=w[i];
if(!sum)
{
cout<<0<<endl;
return;
}
for(int i=20;i>0;i--)
{
if(cnt[i]==1)
{
cout<<1<<endl;
return;
}
if(cnt[i]&1)
{
if(n&1)
{
cout<<1<<endl;
return;
}
else
{
cout<<-1<<endl;
break;
}
}
}
}
int main()
{
int t;cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++) cin>>w[i];
solve();
}
}