P1005 [NOIP2007 提高组] 矩阵取数游戏
算法
发现矩阵的每一行满足最优子结构性质
问题简化为
对于一个长度为 \(m\) 的数列, 每次取其首尾的数
显然可以用区间 dp 解决
状态定义
\(dp_{i, j}\) 表示区间 \([i, j]\) 的最优价值
状态转移方程
\[dp_{i, j} = \max {(dp_{i - 1, j} + w_{i - 1, j \rightarrow i, j}, dp_{i, j - 1} + w_{i, j - 1 \rightarrow i, j})}
\]
答案
手动模拟每一个区间长度为 \(1\) 的 dp 数组
代码
略, 本题 ctj
总结
只要转移前后都有确定区间即可以使用区间 dp

浙公网安备 33010602011771号