洛谷P2197 nim游戏(Nim游戏)
2024-10-20 11:29:40
题目描述
甲,乙两个人玩Nim取石子游戏。
nim游戏的规则是这样的:地上有n堆石子(每堆石子数量小于10000),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取完,不能不取。每次只能从一堆里取。最后没石子可取的人就输了。假如甲是先手,且告诉你这n堆石子的数量,他想知道是否存在先手必胜的策略。
输入输出格式
输入格式:
第一行一个整数T<=10,表示有T组数据
接下来每两行是一组数据,第一行一个整数n,表示有n堆石子,n<=10000;
第二行有n个数,表示每一堆石子的数量
输出格式:
共T行,如果对于这组数据存在先手必胜策略则输出"Yes",否则输出"No",不包含引号,每个单词一行。
输入输出样例
输入样例#1: 复制
2
2
1 1
2
1 0
输出样例#1: 复制
No
Yes 最基础的Nim博弈
亦或和为0先手输
否则先手胜
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=1e6+,INF=1e9+;
inline int read()
{
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int main()
{
#ifdef WIN32
freopen("a.in","r",stdin);
#else
#endif
int Test=read();
while(Test--)
{
int ans=;
int N=read();
while(N--)
{
int P=read();
ans=ans^P;
}
ans==?printf("No\n"):printf("Yes\n");
}
return ;
}
最新文章
- Web API Get Started First
- Android广播错误.MainActivity$MyReceiver; no empty constructor
- 用CSS做长度超过长度显示‘...’,当鼠标放上时显示全部内容
- ThinkPHP 学习笔记 ( 二 ) 控制器 ( Controller )
- CentOS6 Squid代理服务器的安装与配置
- Linux shell编程札记
- SQL Server批量更新数据
- C语言字节对齐
- Ext JS中Button的一般使用
- oracle中 some、any、all 三者的区别及个人总结,归纳!
- stm32之PWM
- 栅栏——CyclicBarrier
- 安装mysql5.5.28的步骤 2017.6.27
- LVM备份(1)-创建LVM逻辑卷
- Impacket官方使用指南
- Python 定值类
- Web Services的学习二
- 正则表达式,re模块
- Lua的文件操作
- Oracle安装部署之linux OS install oracle database安装脚本
热门文章
- 关键字New,如阴魂不散
- VIM -小技巧汇总
- tensorflow笔记4:函数:tf.assign()、tf.assign_add()、tf.identity()、tf.control_dependencies()
- virtualbox ubuntu 安装 openssh-server
- 破解第二课 JMP法
- [2019BUAA软工助教]第0次代码作业
- Struts框架(6)---action接收请求参数
- logstash解耦之redis消息队列
- C++版 - 剑指offer 面试题5:从尾到头打印链表 题解
- 【Objective-C】内存管理