回 帖 发 新 帖 刷新版面

主题:[讨论]请教各位大虾这题有没有更简单的方法?

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

样例输出 Sample Output   
Matrix67
Matrix67
Matrix67
Matrix67
Matrix67
Matrix67
Shadow
Shadow
Matrix67
Matrix67

回复列表 (共2个回复)

沙发

这道题解决的关键是:如果一方在操作时,两堆糖果都是2个或3个,(包括一堆2个、一堆3个)那么另一方必胜。
显然,两方在分的时候,肯定会分出一个2个或3个来(迫使对方吃掉新分出来的2个或3个,否则对方必输)那么只要有一堆糖果个数除以2的商(不计余数)是偶数,或者有一堆糖果个数除以3的商(不计余数)是偶数的话,Matrix67必胜,否则(比如10和15)Shadow必胜。

板凳

不具体...

我来回复

您尚未登录,请登录后再回复。点此登录或注册