#include<bits/stdc++.h>
#define rep(i,k,n) for(int i=k;i<=(n);i++)
using namespace std;
const int maxn=100005;
typedef unsigned long long ll;
const ll mod=10086;
ll a[maxn];int n,Q,tot=0;ll bin[60],ans=0;
void gauss(){
for(ll i=bin[31];i;i>>=1){
rep(j,tot+1,n)if(a[j]&i){
swap(a[j],a[++tot]);
rep(k,1,n)if(k!=tot && (a[k]&i))a[k]^=a[tot];
}
}
}
int main(){//freopen("in.in","r",stdin);
bin[0]=1;rep(i,1,31)bin[i]=bin[i-1]<<1;
scanf("%d",&n);
rep(i,1,n)scanf("%llu",&a[i]);
gauss();
scanf("%d",&Q);ll cu=0;
rep(i,1,tot)
if((cu^a[i])<=Q){cu^=a[i];ans=(ans+bin[tot-i])%mod;
}
rep(i,tot+1,n)ans=(ans<<1)%mod;
printf("%llu",(ans+1)%mod);
}
bzoj 2844
最新推荐文章于 2020-01-31 15:17:01 发布