排列游戏 - 第二输入案例 - 解释

时间:2012-03-29 18:07:20

标签: algorithm

排列游戏(30分)

Alice和Bob玩下面的游戏:

1)他们选择开头的前N个数字的排列。

2)他们交替上场,而爱丽丝则先上场。

3)在一个回合中,他们可以从排列中删除任何剩余的数字。

4)当剩余数字形成递增序列时,游戏结束。最后一个回合(在序列变得增加之后)的人赢得比赛。

假设两者都以最佳方式进行比赛,谁赢了比赛?

输入:
第一行包含测试用例的数量T.T测试用例如下。每个案例在第一行包含一个整数N,然后在第二行包含整数1..N的排列。

输出:
输出T行,每个测试用例一行,如果Alice赢了游戏则包含“Alice”,否则包含“Bob”。

约束:
1< = T< = 100
2 <= N <= 15

最初的排列不会是一个增加的序列。

示例输入:
2
3
1 3 2
5
5 3 2 1 4

样品输出:
爱丽丝
鲍勃

说明:对于第一个例子,Alice可以删除3或2以使序列增加并赢得游戏。

有人可以帮我解决第二个输入案例:5 3 2 1 4

可能的增加顺序是:
1)3 4 - 以任何顺序移除5,2,1 2)2 4 - 以任何顺序移除5,3,1 3)1 4 - 以任何顺序删除5,3,2

所以输出应该是Alice?

请不要共享任何代码。谢谢

3 个答案:

答案 0 :(得分:1)

如果Alice删除5,3,2,1中的任何一个,则Bob删除4。因此,增加的序列可以只有一个元素,元素可以按任何顺序删除。因此,鲍勃获胜。

如果Alice删除4,那么增加的序列也必须是一个元素。鲍勃赢了。

所以,Bob赢了。

答案 1 :(得分:0)

可能的情况可能是4或5被视为增加seq

由于输入参数是n> = 2

但是爱丽丝会以最佳状态发挥并取消5赢得

答案 2 :(得分:-1)

注意:这不是编程问题,实际上不属于此网站......

看起来Alice应该是第二个测试用例的赢家。

流速:

// Start state
5 3 2 1 4

// Alice remove 5
3 2 1 4

// Bob remove 3, 2, or 1
(2 1 4) or (3 1 4) or (3 2 4)

// Alice remove first number remaining
(1 4) or (2 4)

// Alice won!