感人肺腑 按照自己的思路A的 泪~~~
其实有一个规律 题目中的B里面 每个数出现的次数相同 都是 2^(n-tot) 自己YY证明(可以想象线性基)
然后即使 HDU哪个题的反过程辣
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int MO=10086;
int n,m,tot;
int f[100000+10],to[100000+10];
void Xor()
{
for(int i=(1<<30);i!=0;i>>=1)
{
bool ok=false;
for(int j=tot+1;j<=n;j++)
if((f[j]&i)!=0)
{
tot++;
ok=true;
swap(f[tot],f[j]);
to[tot]=i;
break;
}
if(ok)
for(int j=1;j<=n;j++)
if(j!=tot && (f[j]&i)!=0)
f[j]^=f[tot];
}
}
int main()
{
cin >>n;
for(int i=1;i<=n;i++)
scanf("%d ",&f[i]);
cin >>m;
Xor();
int ans=0;
for(int i=1;i<=tot;i++)
{
ans<<=1;
if((m&to[i])!=0)
{
ans|=1;
m^=f[i];
}
}
ans%=MO;
for(int i=1;i<=(n-tot);i++)
ans<<=1,ans%=MO;
ans=(ans+1+MO)%MO;
cout<<ans;
return 0;
}