ACM2017山东省赛
第一题
链接
:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2164/pid/3893
题意:
夏洛克和华生正在玩一个游戏(Nim)
这个游戏有n堆石子被标注成piles1,piles2,……,pilesn
n是石子最大堆数
夏洛克总是第一个,华生跟他交替进行操作
在每一次操作中都有且只有两种可能的情况
1.选择一堆并且从中拿走k个石子,k>0
2.从每一堆石子中都拿走k个石子,k>0且k<=最少的那一堆的石子数,如果有一堆没有石子了,这种操作不会出现
他们俩每一步走的都是最优化的,也就是说只有走投无路时,他们才会踏出输的那一步
求谁最后获胜
n是石子最大堆数
夏洛克总是第一个,华生跟他交替进行操作
在每一次操作中都有且只有两种可能的情况
1.选择一堆并且从中拿走k个石子,k>0
2.从每一堆石子中都拿走k个石子,k>0且k<=最少的那一堆的石子数,如果有一堆没有石子了,这种操作不会出现
他们俩每一步走的都是最优化的,也就是说只有走投无路时,他们才会踏出输的那一步
求谁最后获胜
输入:
第一行一个数g,游戏进行的组数,以下有g块 每块2行
每块第一行 一个参数n,2<=n<=30,石子堆数
每块第二行 n个参数,表示每堆各由几块石子组成
输出:
Sherlock
" or "
Watson
,谁赢,输出名字