算法 博弈论( 初级Nim游戏)
初级Nim游戏
给定n堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。
问如果两人都采用最优策略,先手是否必胜。
输入格式
第一行包含整数n。
第二行包含n个数字,其中第 i 个数字表示第 i 堆石子的数量。
输出格式
如果先手方必胜,则输出“Yes”。
否则,输出“No”。
数据范围
1≤n≤10^5,
1≤每堆石子数≤10^9
输入样例:
2
2 3
输出样例:
Yes
辅助:博弈论入门
异或符号是⊕.
1⊕1=0
0⊕0=0
1⊕0=1
先手必胜和先手必败
以取石子游戏为例,如果一个玩家面对的是没有石子的状态,那么他就失败了,也就是说「没有石子」是先手必败的状态。
如果一个状态能转移到一个先手必败的状态,那么当前的先手一定会转移到先手必败的状态,让对方(也就是下一步的先手)面对这个必败的状态。因此,如果一个状态能转移到至少一个先手必败的状态,那么这个状态就是先手必胜的。否则,转移到的所有状态都是先手必胜,那么这个状态就是先手必败的。
根据结论,关键就是求异或之后的结果res是0还是1
#include<iostream>
using namespace std;
int main()
{int n;cin>>n;int res=0;//记录异或之后的结果for(int i=0;i<n;i++){int x;scanf("%d",&x);res^=x;}if(res==0)printf("No");else printf("Yes");return 0;
}
算法 博弈论( 初级Nim游戏)相关推荐
- 【博弈论】Nim游戏
[博弈论]Nim游戏 提到博弈论,比较经典的就是Nim游戏. Nim游戏的大致内容就是:给了好几堆石子,两个人,每个人轮流从某一堆中拿取任意数量的石子,最先取完石子的那一方即可获胜,注意:两个人都用的 ...
- 博弈论——关于Nim游戏和SG函数的几个链接
今天做了一道博弈论的题目,正好去找找相关资料再复习一下. 网上能找到的都是同样的文章,不过我觉得足够了,Nim游戏百度百科里说的很详细,包括公式.证明之类的 http://baike.baidu.co ...
- 博弈论(Nim游戏、有向图游戏之SG函数)
这里写目录标题 经典NIM游戏 Nim游戏属于公平组合游戏ICG 有向图游戏(SG函数) Mex运算 SG函数 单个有向图(一堆石子) 求SG值(记忆化递归) 有向图游戏的和 ,(多个有向图(多堆石子 ...
- 博弈论(一):Nim游戏
从今天开始,我将会用一系列文章介绍博弈论(Game Theory)的基本知识,以OI中可能用得着的为主.当然,我对博弈论的理解还很肤浅,而且我写东西的风格向来都是"个人心得"而非& ...
- [博弈论] Nim游戏及SG函数(经典+台阶+集合+拆分)
文章目录 0. 前言 1. Nim 游戏+模板题 2. 台阶 - Nim 游戏+变种题 3. Mex运算与SG函数 4. 集合 - Nim 游戏+变种题 5. 拆分 - Nim 游戏+变种题 0. 前 ...
- 基础博弈论(NIm,威佐夫,巴什游戏)
最近刚刚接触了基础博弈论 一开始感觉是一个非常难以理解的专题 看了几天别人的题解 写了几道题感觉稍微有了一点点的感觉 下面来总结一下几个常见的基础博弈 1.巴什游戏 最简单的那当然就是巴什游戏了题目是 ...
- 【小组专题二:博弈论入门综述(1)】NP状态 | SG函数 | 巴什博奕、威佐夫博弈、斐波那契博弈、Nim游戏、SJ定理
博弈论综述[1] 前言 博弈与博弈论 博弈树 NP状态 SG函数(Sprague-Grundy) Sprague-Grundy Theorem 巴什博奕 Bash Game 威佐夫博弈 扩展威佐夫博弈 ...
- 【acm 博弈论 】 之 Nim游戏与sg函数
文章目录 前言 巴什博弈 威佐夫博弈 Nim游戏 Nim游戏与sg函数 题目 题意 样例 思路 代码 前言 从今天开始复习和整理下acm的部分模块,从博弈论开始. 著名的"取石子" ...
- 博弈论与SG函数(Nim游戏)
博弈论与SG函数(Nim游戏) 目录 博弈论与SG函数(Nim游戏) 游戏状态 状态图(SG图) Nim 游戏 Nim 和 SG函数 Grundy数字 组合博弈游戏 Grundy 游戏 例题 在本篇, ...
最新文章
- springMVC注解中@RequestMapping中常用参数value params 以及@RequestParam 详解
- oracle 10g 还原表格,oracle 10g 闪回表恢复
- 顶配12599元!三星Galaxy S22国行价格来了...
- Linux工作笔记026---Centos7.3 yum提示Another app is currently holding the yum lock; waiting for it to exit.
- ImageX instead of Ghost
- wpf之auto与*的区别
- 【图文详解】用Eclipse创建Maven Web项目
- java打印pdf文件乱码_java – 从PDF复制粘贴在原始文件上是乱码,但在使用CutePDF打印pdf时已修复...
- Eclipse SVN断开连接后 怎么重新连接
- 计算机键盘练习,电脑键盘指法练习经验分享
- 第6集丨Persistent Objects 和 Caché SQL
- coredns异常问题
- 格灵深瞳将登陆科创板募资18亿,AI天才未来能否走出巨亏困局?
- 人工智能如何改变了我们的日常生活?
- 【C语言】定义一个函数,求长方体的体积
- 北航c语言程序设计大一期末题库,北航2016C语言|程序设计题七
- solr常见问题整理
- Bootstrap系列之巨幕(Jumbotron)
- InGaAs APD阵列的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- css filter blur 白边,如何解决CSS3毛玻璃效果blur有白边的问题
热门文章
- ThinkPHP5多语言切换项目实战
- 指定TabLayout的指示器宽度
- 鸿蒙系统为什么能用太极框架,玩机福音:华为 EMUI 升级鸿蒙之后依然可使用太极运行 Xposed...
- 论文阅读笔记《Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation》
- 创蓝闪验一键登录(Java实现)
- 网站域名到底加不加 WWW
- Java多线程--并发中集合的使用PriorityBlockingQueue
- 何谓三十而立 四十不惑 五十知天命 六十知耳顺?
- Yolov5环境配置 配不好来打我
- Realsense D435i Yolov5目标检测实时获得目标三维位置信息