硬币游戏:最优策略下判断获胜者

bv528930 程序题 共 个子题

题目描述

Jerry和Tom正在进行一局游戏。他们准备了n个盒子,编号为1到n,其中i号盒子装有ai枚硬币。他们将这n个盒子围成一圈。游戏规则如下:

  1. Jerry和Tom轮流从某一个盒子中取走至少一枚硬币,Jerry先手从1号盒子开始取;
  2. 如果前一个玩家取的是i号盒子中的硬币,那么当前玩家必须从i+1号盒子中取硬币。特别地,如果前一个玩家取的是n号盒子中的硬币,那么当前玩家必须从1号盒子中取硬币;
  3. 如果轮到某位玩家时对应盒子中没有硬币,则该玩家失败。

假设Jerry和Tom都采取最优策略,请问谁会赢?

输入描述

本题每个测试点包含多组测试数据,格式如下: 第一行输入一个整数T(1≤T≤100),表示数据组数; 对于每组测试数据:

  • 第一行输入一个整数n(1≤n≤1000),表示盒子的数量;
  • 第二行输入n个整数ai(1≤ai≤10^9),分别表示1号到n号盒子中的硬币数量,整数之间以一个空格隔开。

输出描述

输出T行,每行输出一个字符串,对于第i组测试数据,如果Jerry能赢,则输出Jerry,否则输出Tom。

样例输入

2
1
10
2
30 50

样例输出

Jerry
Tom

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧