博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3759 Hungergame 博弈论+线性基
阅读量:5946 次
发布时间:2019-06-19

本文共 799 字,大约阅读时间需要 2 分钟。

和nim游戏类似

易证必败状态为:当前打开的箱子中石子异或和为0,没打开的箱子中不存在一个子集满足异或和为0

因为先手无论是取石子还是开箱子,后手都可以通过取石子来使状态变回原状态

所以只需判定是否有子集异或和等于零即可

#include
#include
#include
#include
#include
using namespace std;int T,n,a[25];bool work(){ int i,j,k=0; for(i=1<<30;i;i>>=1){ for(j=k+1;j<=n;j++) if(a[j]&i) break; if(j==n+1) continue; swap(a[++k],a[j]); for(j=1;j<=n;j++) if(j!=k&&(a[j]&i)) a[j]^=a[k]; } return k!=n;//k!=n说明有某堆在过程中被异或为0 }int main(){ freopen("hunger.in","r",stdin); freopen("hunger.out","w",stdout); scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); if(work()) printf("Yes\n"); else printf("No\n"); } return 0;}

转载于:https://www.cnblogs.com/Ren-Ivan/p/7746727.html

你可能感兴趣的文章
我的友情链接
查看>>
我的友情链接
查看>>
企业实战:mysql5.6数据库备份、恢复脚本
查看>>
RabbitMQ(消息队列)Linux安装相关问题解决
查看>>
我的友情链接
查看>>
CentOS7安装mysql
查看>>
RMB數字轉換中文
查看>>
基于rhel7.2的Zabbix平台搭建和部署(二)
查看>>
Html5本地存储和本地数据库
查看>>
我的友情链接
查看>>
JQ 循环切换DIV
查看>>
Nagios监控NetAPP NAS存储容量,Volume、Qtree
查看>>
Android Fragment实践(二)
查看>>
centos 修改主机名立即生效和重启后也生效的方法
查看>>
Windows 64 位 mysql 5.7以上版本包解压安装
查看>>
知道双字节码, 如何获取汉字 - 回复 "pinezhou" 的问题
查看>>
TClientDataSet[14]: 测试 FindFirst、FindNext、FindLast、FindPrior、Found
查看>>
CentOS 6.3中配置bond多网卡负载均衡
查看>>
调整数组使奇数全部都位于偶数前面
查看>>
clamav 完整查杀 linux 病毒实战
查看>>