P1005 [NOIP2007 提高組] 矩陣取數遊戲

Yorg發表於2024-10-04

演算法

發現矩陣的每一行滿足最優子結構性質

問題簡化為

對於一個長度為 \(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

相關文章