P1196吃糖果游戏 题解

Ronice 发表于 2006-10-21 11:19:48

描述 Description
  Matrix67和Shadow正在做一个小游戏。
  桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不相等)留给对方操作。游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。游戏规定此时该操作者吃掉最后这一块糖果从而取胜。
  这个游戏是不公平的。对于任意一种初始状态,总有一方有必胜策略。所谓有必胜策略是指,无论对方如何操作,自己总有办法取胜。
  Matrix67和Shadow将进行10次游戏,每一次游戏中总是Matrix67先进行操作。Matrix67想知道每一次游戏中谁有必胜策略。
输入格式 Input Format
  输入数据一共10行,每行有两个用空格隔开的正整数,表示一次游戏开始时桌子上两堆糖果分别有多少个。
  对于50%的数据,这些正整数均不超过100;
  对于70%的数据,这些正整数均不超过10 000;
  对于100%的数据,这些正整数均不超过10 000位。
输出格式 Output Format
        输出十行字符串。这些字符串只能是“Matrix67”或“Shadow”,它们表示对应的十行输入数据中有必胜策略的一方。
  请注意大小写。

显然当A吃完其中一堆后,如果剩下那堆为2或3则A必败。
当A吃完其中一堆后,剩下那堆为7,8,则A也必败:
   7=2+5=3+4;
   8=3+5=4+4; 4=2+2;

对于两堆 10i+a,10j+a,(a为2,3,7,8)
1、A吃完一堆,会努力的分出10i+a,此时另一堆剩下10j+(-)5获10m;
  注意到2+8=10 3+7=10; 8-3=5; 7-2=5;
2、B吃完其中第一堆,分离第二堆时,分离出a后,还是剩于10k+a;跳至1、
3、当然,如果A吃完其中一堆后,分离出的两堆也可以是10i+c(c为1,4,5,6,9) 和10j-c+a;B吃完第二堆后,还是可以将第一堆分离成a,10i+a; 转至1
    2+2=4; 2+3=5; 3+3=6; 2+7=9; 3+8=11;
推得A必败

当两堆中任意一堆不为10i+a时A都可以通过3取得必胜。

究其原因当尾数都是(2,3,7,8)时A必输,是因为
 2+8=10 3+7=10
所以无论A如果处理10i+a B都可以将他转化为必败状态

关键词(Tag): vijos


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定