文章目录
简单
中等
J - Boxes Game
传送门
题意:有 n 个数字,两个人每次从两端取数字,取出的数字加到他们各自的总分,问他们分数相减的绝对值是多少?(两人都是按照最优策略取数)
做法:设 dp[x][y] 是在区间 [x , y],先手能获得的最大值,可以看出这个值与 dp[x + 1][y] 和 dp[x][y - 1] 有关系,先手如果想要取得最大值,一定会让后手选择这两个状态中最小的那个,所以区间和 - 两个状态中较小的 == dp[x][y],状态转移方程是:
dp[i][j] = sum[i][j] - min(dp[i + 1][j], dp[i][j - 1]);
这题有三种写法,枚举区间长度的DP,搜索 + 剪枝,线性DP