Coins in a Line III 获取链接 Facebook X Pinterest 电子邮件 其他应用 八月 24, 2017 虽然是hard,但是真正理解起来并不难。关键是要知道区间dp的概念。因为棋手是前后端都可以选,单个状态dp不好表示,所以利用区间dp[i][j]表示在i->j这个区间先手能取到的最大值。 dp[i][j]=sum[i][j]-min(dp[i][j-1],dp[i+1][j])。这道题用记忆化搜索的递归方法来实现。 获取链接 Facebook X Pinterest 电子邮件 其他应用 评论
Coins in a Line 八月 20, 2017 dp[i]表示还剩i个棋子的时候取的那个人的输赢。要让dp[i]赢,那么dp[i-1]和dp[i-2]至少有一个需要输。因为前一个状态输了,就是对手最后取。现在就轮到先手的人取了,必赢。实现的时候要注意dp数组长度是n+1. 阅读全文
评论
发表评论