1176. Two Ends

TAG 动态规划

我原先还以为可以推出选排策略,结果不行。。没有规律,得用dp(‖▔ ω▔)

题目有点问题,玩家2选大的牌,如果这时候两端的牌一样大怎么办? 得选左边的才能ac

题目最后说 If there is a tie, remove the left end.打平要去掉左端点的牌,牌就变奇数了? 不用处理才能ac,比如4 2 2 2 2 ,输出0。

因为题意wa了几次,太无语了。。

设dp[s][t] 从s到t玩家1最多的得分(玩家2按贪心策略)。

dp[s][t]=max{ card[s]+dp[s+2][t], ( 玩家1取左端, 剩下的牌左边大)

card[s]+dp[s+1][t-1], ( 玩家1取左端, 剩下的牌右边大)

dp[s+1][t-1]+card[t] ( 玩家1取右端, 剩下的牌左边大)

dp[s][t-2]+card[t] ( 玩家1取右端, 剩下的牌右边大) }

时间复杂度O(n^2),我用递归做。


你可能感兴趣的:(1176. Two Ends)