【问题标题】:how is this solution achieved? longest increasing sub-sequence这个解决方案是如何实现的?最长递增子序列
【发布时间】: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


【解决方案1】:
alice -> remove 5
bob -> remove 4
alice -> remove 1/2/3
bob -> remove any remaining -> Wins

【讨论】:

  • 不是“Playing Optimally”意味着双方都想以最少的步数完成游戏吗?
  • @Pheonix:不,发挥最佳意味着他们都在努力获胜。
  • 我认为打出最佳状态意味着做出让对手更难获胜的动作。在这种情况下,bob 删除了 4,因为剩余的序列 3 2 1 严格递减并且长度为奇数,这意味着 alice 无法获胜,因为她先选择了。
【解决方案2】:

最近的结局(移动最少)是 3 4、2 4 和 1 4。在这种情况下,爱丽丝获胜。所以鲍勃必须阻止这种情况。最简单的方法是删除 4。所以基本上这就是 Bob 的策略,足以获胜。

Alice 的策略是将这两个数字保留在棋盘上,因此她将从 5 开始。之后,我们知道 Bob 将删除 4,此时 Alice 可以选择任何数字,因为她总是会输。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2023-04-03
    • 2022-01-07
    相关资源
    最近更新 更多