Alice和Bob发明了一种新的两人游戏。最初,地面放置有一摞共n个硬币( 5 <= n <= 2000 ),从上面数第 i 个硬币的价值为Ci( 1 <= Ci <= 100000 ),游戏开始后,由Alice先拿走最上层的一枚或两枚硬币,之后Bob再选择拿走最上层的一枚或两枚硬币,两人依此规则交替拾取硬币,当没有硬币可取的时候,游戏就结束了。两个人都希望自己拿到的硬币的价值和尽可能的大。因为Bob非常聪明,现在,Alice希望知道在假设Bob每次都会选择最佳策略时,Alice自己能够拿到的最大价值和是多少?
输入:

本文介绍了Alice和Bob玩的硬币游戏,他们轮流从一摞硬币中取出1到2枚,目标是使自己拿到的硬币价值最大化。面对聪明的Bob,Alice需要找出自己在先手的情况下能获取的最大价值。游戏有5到2000枚硬币,每枚价值1到100000。通过动态规划方法,可以求解Alice能获得的最大价值,状态转移方程为dp[i] = max{a[i]+Σa(1->i-1)-dp[i-1], a[i]+a[i-1]+Σa(1->i-2)-dp[i-2]}。"
81947511,7467461,Python GUI编程:Tkinter快速入门,"['Python', 'Tkinter']
最低0.47元/天 解锁文章
419

被折叠的 条评论
为什么被折叠?



