【发布时间】:2011-11-13 04:33:49
【问题描述】:
所以我正在做一些算法解决问题和我无法理解的第一个问题输入/输出测试用例。我不是在这里问任何算法或代码,我只是想了解Bob 是如何获胜的?
爱丽丝和鲍勃玩以下游戏:
1) 他们选择前 N 个数字的排列开始。
2) 他们交替演奏,爱丽丝先演奏。
3) 在一个回合中,他们可以从 排列。
4) 当剩余的数字形成递增时,游戏结束 序列。玩最后一回合的人(之后 序列增加)赢得比赛。
假设双方都发挥最佳,谁会赢得比赛?
测试用例
5 3 2 1 4
现在他们说鲍勃会赢得比赛。 怎么样?
alice -> remove 5
bob -> remove 3
alice -> remove 1/2 -> Wins
或
alice -> remove 3
bob -> remove 5
alice -> remove 1/2 -> Wins
【问题讨论】:
-
我怀疑关键点是“假设双方都发挥最佳”......对于 Bob 的移动,你的选择是 最佳 选择吗?
-
@GregHewgill 从那行开始,我假设他们不会删除最长递增子序列中的数字,而我看到的这个测试用例中最长递增子序列是 @ 987654325@
-
是的,在这两个例子中 Bob 拿了 4 是什么?
-
@bigendian 如果 bob 删除 4,那么最终答案将只有 1 位数字,我假设“发挥最佳”是我们得到最长的答案,还是我理解错误的短语?最佳意味着增加他们获胜的机会?
-
'发挥最佳'意味着最大化他们的获胜机会。对于 Bob,这意味着尝试在这里实现递减序列,因为他是删除倒数第二个数字的人。
标签: algorithm