描述

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吃糖果游戏[组合游戏]相关推荐

  1. P1567 吃糖果游戏

    原题: 描述     Matrix67和Shadow正在做一个小游戏.     桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作.在每一次操作中,操作者需要吃掉其中一堆糖果,并 ...

  2. 组合游戏(分石子,nim游戏,sg)

    一.最近在学习组合游戏方面的知识,我们可以考虑这类组合游戏: (1)两个人轮流操作 (2)游戏状态有限,总能走到最终状态,且都不会出现以前的状态.即给定初始状态,游戏的胜负是可以预见的. (3)规定谁 ...

  3. JAVA课程设计——“小羊吃蓝莓”小游戏

    JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...

  4. [算法] 2-4 组合游戏

      1.Nim游戏:有3堆火柴,分别为a,b,c根,记为状态(a,b,c).每次一个游戏者可以从任意一堆中拿走至少一根火柴,也可以整堆拿走,但不能从多堆火柴中同时拿走.无法拿火柴的游戏者输.   2. ...

  5. 基于C++控制台(Windows平台)的一个吃豆人小游戏

    PacManX --南京大学2019秋季学期 "高级程序设计 "课程设计一 基于C++控制台(Windows平台)的一个吃豆人小游戏 已实现的目标: 地图支持自定义编辑(可编辑地图 ...

  6. 整活~使用webAI做一个网页AR吃豆人小游戏

    一个好习惯,先给结论 使用网页端深度学习框架识别人脸,做一个AR吃豆人小游戏.吃豆人会随着人脸在镜头内的移动而移动,吃完全部豆子即为获胜. 在线体验地址:点我预览 代码地址:点我github 本文首发 ...

  7. 可怜的博主跟小豆人杠起来啦!Python制作的吃豆人小游戏,快来围观!!

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 对了大家可以关注小编的公众号哟~~ Python日志 开发环境 Python版本:3.6.4 相关模块: pygame模块: 以及一些P ...

  8. (组合游戏)SG函数与SG定理详解

    文章目录 前言 什么是组合游戏 必胜点和必败点的概念 Sprague-Grundy(SG)定理 SG函数 前言   好久没写博客了,上一篇博客还是去年实训写的,一是因为寒假,二是因为随着难度的加深,学 ...

  9. SG函数SG定理游戏的和公平组合游戏

    公平组合游戏(Impartial Combinatorial Games) 条件: 1.两名选手交替进行操作 2.两名选手局面移动的权力相同 3.当前选手的合法移动集合至于当前的局面有关,与轮到哪名选 ...

最新文章

  1. IdentityServer4(六)授权码流程原理之SPA
  2. android adb apk包名,ADB命令简单使用--查看包名、activity等
  3. 使用rancher-2.5.5部署单节点kubernetes集群
  4. PCA(Principal Component Analysis)原理简单分析
  5. php软件开发--tp5
  6. Node.js使用supervisor遭遇‘supervisor’不是内部或外部命令,如果解决?
  7. 图像语义分割(12)-重新思考空洞卷积: 为弱监督和半监督语义分割设计的简捷方法
  8. 281210每日一句
  9. Java基础1-环境篇:JDK安装与环境变量配置
  10. Axure制作微信APP原型(一)四大模块:消息、通讯录、发现、我
  11. CodeForces - 1040B Shashlik Cooking (思维/贪心)
  12. idea中module项目没有蓝色小方块问题
  13. 不锈钢水处理过滤器在食品领域中的运用
  14. php 考试系统 倒计时,php实现倒计时效果_PHP
  15. 深圳APP开发共享汽车APP
  16. Tensorflow 笔记 Ⅱ——单变量线性回归
  17. r语言dataellipse_R语言中的划分聚类模型
  18. 人工智能小白日记 语音情感分析探索之2 CNN相关及实验
  19. oracle imdp导入dmp,impdp导入dmp文件
  20. windows蓝屏错误代码查询

热门文章

  1. Python pip参数(精)
  2. N - Dragon Balls(并查集+深度的意义
  3. 基础数据结构——是否同一棵二叉搜索树
  4. Python sqlalchemy orm 多对多外键关联
  5. AsyncTask理解- Day36or37
  6. C# 声明方法的语法
  7. 第一章 软件工程概论
  8. 东软刘积仁:软件已从高科技领域变成大众消费品
  9. 送书!1991-2018,区块链的那点事,都在这里了!
  10. linux内核start_kernel分析