【发布时间】:2012-04-02 09:53:35
【问题描述】:
爱丽丝和鲍勃玩以下游戏:
1) 他们选择前 N 个数字的排列开始。
2) 他们交替演奏,爱丽丝先演奏。
3) 在一个回合中,他们可以从排列中删除任何一个剩余的数字。
4) 当剩余的数字形成递增序列时,游戏结束。玩最后一回合(之后顺序增加)的人赢得了游戏。
假设双方都发挥最佳,谁会赢得比赛?
输入: 第一行包含测试用例 T 的数量。接下来是 T 测试用例。每个案例在第一行包含一个整数 N,然后在第二行包含整数 1..N 的排列。
输出: 输出 T 行,每个测试用例一个,如果 Alice 获胜则包含“Alice”,否则包含“Bob”。
示例输入:
2
3
1 3 2
5
5 3 2 1 4
样本输出:
爱丽丝
鲍勃
约束:
1
2
排列最初不会是递增序列。
我正在尝试解决上述问题。我已经推导出来,但我被困在一个点上。请帮助我继续进行。
在上述问题中,对于长度为 2 的排列,玩家 1 总是获胜。
对于长度为 3 的排列,如果字符串严格增加或减少,则玩家 2 获胜。
对于长度为 4 的排列,如果玩家 1 能够通过删除一个字符使字符串严格增加或减少,则她获胜,否则玩家 2 获胜。
因此得出的结论是:
如果当前玩家能够使字符串严格增加他/她获胜。 (小案例)
如果他/她能够使其严格递减,则获胜者将由该序列中的元素数量决定。如果该序列中有偶数个元素,则当前玩家输,否则为赢。
但是如果结果字符串既不增加也不减少怎么办?
【问题讨论】:
-
这是作业吗?问作业问题不是坏事,但如果这是作业,请标记它。
-
我没有什么可以给你的建议,但是对于这类问题,可能值得查看 "Games of No Chance" 和 "More Games of No Chance" 的书籍,它们处理这种“完整信息”游戏。这些书包含许多关于谁能赢得这样的两个玩家游戏的证据,以及在什么条件下,所以如果没有别的,它们可能值得寻找灵感。
-
这个问题需要算法游戏的基础知识。您可以在Topcoder 上阅读有关它的信息。对于这个问题,我认为您可能还需要使用 memoizaion。希望对您有所帮助。
-
@Li-aungYip 感谢您的回复。我无法弄清楚问题是否是家庭作业问题!如何?我试图解决它,但无法解决,所以决定寻求帮助。 :) 感谢您提到的宝贵资源。 :)
-
@PriyankBhatnagar 我已经完成了那个教程!不管怎么说,还是要谢谢你。 :)
标签: algorithm math game-theory