Vijos P1196吃糖果游戏[组合游戏]
描述
Matrix67和Shadow正在做一个小游戏。
桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不相等)留给对方操作。游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。游戏规定此时该操作者吃掉最后这一块糖果从而取胜。
这个游戏是不公平的。对于任意一种初始状态,总有一方有必胜策略。所谓有必胜策略是指,无论对方如何操作,自己总有办法取胜。
Matrix67和Shadow将进行10次游戏,每一次游戏中总是Matrix67先进行操作。Matrix67想知道每一次游戏中谁有必胜策略。
格式
输入格式
输入数据一共10行,每行有两个用空格隔开的正整数,表示一次游戏开始时桌子上两堆糖果分别有多少个。
对于50%的数据,这些正整数均不超过100;
对于70%的数据,这些正整数均不超过10 000;
对于100%的数据,这些正整数均不超过10 000位。
输出格式
输出十行字符串。这些字符串只能是“Matrix67”或“Shadow”,它们表示对应的十行输入数据中有必胜策略的一方。
请注意大小写。
样例1
样例输入1[复制]
1 1 1 2 1 3 1 4 1 5 2 1 2 2 2 3 2 4 2 5
样例输出1[复制]
Matrix67 Matrix67 Matrix67 Matrix67 Matrix67 Matrix67 Shadow Shadow Matrix67 Matrix67
限制
各个测试点1s
来源
Matrix67原创
规定了获胜状态
从(x,1)开始递推
设(x,a),吃掉x,留下的a分开,如果能分成两部分c和d使(x,c)和(x,d)都是P状态,(x,a)就是n状态;如果不得不存在一个N状态的,(x,a)就是P状态
递推完1...10后>10的%10就行了
还有一种分析:(%Matrix67)
当游戏状态属于前者时,Matrix67可以把糖果数被5除余1、4或正好除尽的那一堆分成糖果数被5除余数都是2或3的两堆(他总能做到这一点),而对方不得不把其中一堆糖果又分出新的糖果数被5除余1、4或正好除尽的一堆留给Matrix67操作。这样逼着对方总是面临必败的状态,使得最后对方不得不把2个糖果或者3个糖果分成两堆,从而使Matrix67赢得游戏。反过来,当Matrix67面临两堆糖果的数目被5除余数都是2或3的状态时,Shadow总可以取胜。
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int N=1e4+5,INF=1e9+5; char a[N],b[N]; int main(){for(int i=1;i<=10;i++){scanf("%s%s",a,b);int n=strlen(a)-1,m=strlen(b)-1;char c=a[n],d=b[m];if((c=='2'||c=='3'||c=='7'||c=='8')&&(d=='2'||d=='3'||d=='7'||d=='8')) puts("Shadow");else puts("Matrix67");} }
Vijos P1196吃糖果游戏[组合游戏]相关推荐
- P1567 吃糖果游戏
原题: 描述 Matrix67和Shadow正在做一个小游戏. 桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作.在每一次操作中,操作者需要吃掉其中一堆糖果,并 ...
- 组合游戏(分石子,nim游戏,sg)
一.最近在学习组合游戏方面的知识,我们可以考虑这类组合游戏: (1)两个人轮流操作 (2)游戏状态有限,总能走到最终状态,且都不会出现以前的状态.即给定初始状态,游戏的胜负是可以预见的. (3)规定谁 ...
- JAVA课程设计——“小羊吃蓝莓”小游戏
JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...
- [算法] 2-4 组合游戏
1.Nim游戏:有3堆火柴,分别为a,b,c根,记为状态(a,b,c).每次一个游戏者可以从任意一堆中拿走至少一根火柴,也可以整堆拿走,但不能从多堆火柴中同时拿走.无法拿火柴的游戏者输. 2. ...
- 基于C++控制台(Windows平台)的一个吃豆人小游戏
PacManX --南京大学2019秋季学期 "高级程序设计 "课程设计一 基于C++控制台(Windows平台)的一个吃豆人小游戏 已实现的目标: 地图支持自定义编辑(可编辑地图 ...
- 整活~使用webAI做一个网页AR吃豆人小游戏
一个好习惯,先给结论 使用网页端深度学习框架识别人脸,做一个AR吃豆人小游戏.吃豆人会随着人脸在镜头内的移动而移动,吃完全部豆子即为获胜. 在线体验地址:点我预览 代码地址:点我github 本文首发 ...
- 可怜的博主跟小豆人杠起来啦!Python制作的吃豆人小游戏,快来围观!!
相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 对了大家可以关注小编的公众号哟~~ Python日志 开发环境 Python版本:3.6.4 相关模块: pygame模块: 以及一些P ...
- (组合游戏)SG函数与SG定理详解
文章目录 前言 什么是组合游戏 必胜点和必败点的概念 Sprague-Grundy(SG)定理 SG函数 前言 好久没写博客了,上一篇博客还是去年实训写的,一是因为寒假,二是因为随着难度的加深,学 ...
- SG函数SG定理游戏的和公平组合游戏
公平组合游戏(Impartial Combinatorial Games) 条件: 1.两名选手交替进行操作 2.两名选手局面移动的权力相同 3.当前选手的合法移动集合至于当前的局面有关,与轮到哪名选 ...
最新文章
- IdentityServer4(六)授权码流程原理之SPA
- android adb apk包名,ADB命令简单使用--查看包名、activity等
- 使用rancher-2.5.5部署单节点kubernetes集群
- PCA(Principal Component Analysis)原理简单分析
- php软件开发--tp5
- Node.js使用supervisor遭遇‘supervisor’不是内部或外部命令,如果解决?
- 图像语义分割(12)-重新思考空洞卷积: 为弱监督和半监督语义分割设计的简捷方法
- 281210每日一句
- Java基础1-环境篇:JDK安装与环境变量配置
- Axure制作微信APP原型(一)四大模块:消息、通讯录、发现、我
- CodeForces - 1040B Shashlik Cooking (思维/贪心)
- idea中module项目没有蓝色小方块问题
- 不锈钢水处理过滤器在食品领域中的运用
- php 考试系统 倒计时,php实现倒计时效果_PHP
- 深圳APP开发共享汽车APP
- Tensorflow 笔记 Ⅱ——单变量线性回归
- r语言dataellipse_R语言中的划分聚类模型
- 人工智能小白日记 语音情感分析探索之2 CNN相关及实验
- oracle imdp导入dmp,impdp导入dmp文件
- windows蓝屏错误代码查询