Vijos P1196吃糖果游戏[组合游戏]
描述
Matrix67和Shadow正在做一个小游戏。
桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不相等)留给对方操作。游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。游戏规定此时该操作者吃掉最后这一块糖果从而取胜。
这个游戏是不公平的。对于任意一种初始状态,总有一方有必胜策略。所谓有必胜策略是指,无论对方如何操作,自己总有办法取胜。
Matrix67和Shadow将进行10次游戏,每一次游戏中总是Matrix67先进行操作。Matrix67想知道每一次游戏中谁有必胜策略。
格式
输入格式
输入数据一共10行,每行有两个用空格隔开的正整数,表示一次游戏开始时桌子上两堆糖果分别有多少个。
对于50%的数据,这些正整数均不超过100;
对于70%的数据,这些正整数均不超过10 000;
对于100%的数据,这些正整数均不超过10 000位。
输出格式
输出十行字符串。这些字符串只能是“Matrix67”或“Shadow”,它们表示对应的十行输入数据中有必胜策略的一方。
请注意大小写。
样例1
限制
各个测试点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+,INF=1e9+;
char a[N],b[N];
int main(){
for(int i=;i<=;i++){
scanf("%s%s",a,b);
int n=strlen(a)-,m=strlen(b)-;
char c=a[n],d=b[m];
if((c==''||c==''||c==''||c=='')&&(d==''||d==''||d==''||d=='')) puts("Shadow");
else puts("Matrix67");
}
}
最新文章
- 写入标题使用依赖注入Title的setTitle方法
- asp.net 生成 excel导出保存时, 解决迅雷下载aspx页面问题
- angular 自定义指令
- Avoiding PostgreSQL database corruption
- SSL简介
- NOI 1998 免费馅饼
- hdu 4790 Just Random (思路+分类计算+数学)
- SQL Server 2008 R2 性能计数器详细列表(四)
- 线段树初步__ZERO__.
- [java面试]javascript中dom取值问题radio名字一样归属于同一个组,求点击的是哪一个
- await这个关键词以及asyncio.wait asyncio.gather
- MGR架构~ 整体性能架构的调优
- Python3 下找不到urllib2的问题
- Spring之事务操作(注解)
- C#的Lamda表达式_匿名函数
- 移植Python3到TQ2440(二)
- sql server 创建内联表值函数
- jq给动态生成的标签绑定事件的几种方法
- 6、Object、String、StringBuffer
- js生成中文二维码
热门文章
- IDE有毒
- 使用插件实现一般处理程序导出excel
- Laravel [1045] 解决方法 Access denied for user &#39;homestead&#39;@&#39;localhost&#39;
- Verilog HDL模型的不同抽象级别
- PHP多维数组根据其中一个字段的值排序
- UML常用图
- H5学习
- javascript中的prototype和constructor
- Android—Socket服务端与客户端用字符串的方式互相传递图片
- Android开发—已root的手机获取data路径