引用题解:http://blog.csdn.net/PoPoQQQ/article/details/39829237

注意评论区。

#include<cstdio>
using namespace std;
#define MOD 10086
#define N 100001
int n,a[N],m,base[32],k,real[32],ans,now;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
scanf("%d",&m);
int j;
for(int i=1;i<=n;++i)
{
for(j=31;j>=0;--j)//尝试用所有的线性基去消a[i]
if(((a[i]>>j)&1)&&base[j])
a[i]^=base[j];
if(a[i])//若a[i]不能被以前的线性基所表示(线性无关)
{
for(j=31;j>=0;--j)//把a[i]的剩余部分插入线性基
if(((a[i]>>j)&1)&&(!base[j]))
{
base[j]=a[i];
break;
}
for(int k=31;k>j;--k)//从线性基里把新插入的家伙消掉
if((base[k]>>j)&1)
base[k]^=a[i];
}
}
for(int i=0;i<=31;++i) if(base[i]) real[k++]=base[i];
for(int i=k-1;i>=0;--i)
if((real[i]^now)<=m)
{
now^=real[i];
ans=(ans+(1<<i)%MOD)%MOD;
}
for(int i=0;i<n-k;++i)
ans=(ans<<1)%MOD;
printf("%d\n",(ans+1)%MOD);
return 0;
}

最新文章

  1. 《DSP using MATLAB》示例Example6.1
  2. C# DataSet
  3. 从零开始学node(一): nodejs开发环境的配置
  4. 拥Bootstrap入怀——模态框(modal)篇
  5. vector中的erase方法[转+补充]
  6. noj [1480] 懒惰的风纪委Elaine (多重背包)
  7. Java Script 字符串操作
  8. Twisted UDP编程技术
  9. ansible-host file
  10. 分频器的Verilog实现
  11. 使用JavaScript制作页面效果3
  12. [daily] 内存越界的分析与定位
  13. Qt: 加入打印支持
  14. T4学习- 2、创建设计时模板
  15. 后缀名htm与html的区别
  16. 657. Judge Route Circle
  17. Web Api HelpPage
  18. open方法读写文件
  19. openwrt下如何只编译uboot
  20. if、while中变量的作用域问题

热门文章

  1. 文件格式转换神器-pandoc
  2. git使用笔记(一)入门
  3. Codeforces Round #532 (Div. 2) 题解
  4. 【SPOJ - QTREE2】树链剖分
  5. 【Foreign】字符串匹配 [KMP]
  6. 网络流专题练习Day1
  7. 【BZOJ】1571: [Usaco2009 Open]滑雪课Ski
  8. 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)
  9. 【转】cve2014-3153 漏洞之详细分析与利用
  10. Charles Android 抓包失败SSLHandshake: Received fatal alert: certificate_unknown