排列游戏(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?
请不要共享任何代码。谢谢
答案 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!