方格取數 dp思想

2021-09-29 04:57:09 字數 751 閱讀 1750

題目:方格取數

拓展題:傳紙條

題目大意:給定乙個矩陣每乙個位置有乙個權值,從左上角到右下角,要走兩次,所到的點如果有權值就取出並變為0,求所走路線取值和最大值。

解題思路:dp演算法

首先假設兩條路同時出發,如果相遇在同乙個各自就只需要取一次權值。

這裡我們來考慮狀態:k表示當前所在位置步數(下標和,即x+y),i1表示第一條路線所在位置的行,i2表示第二條路線當前所在位置的行,即dp[k][i][j]。

因為判斷是否在同乙個位置的條件就是步數(下標和)相同的請情況下,兩條路線在同一行,那麼必定在同一列。

現在來考慮狀態轉移:每一條路線的每乙個位置都可以會從他的上方或者他的左邊取過來,因為有兩條路所以就會有4個狀態轉移。

上**:

#include

using

namespace std;

const

int n=27;

int w[n]

[n],dp[n]

[n][n]

;//dp[k][i1][i2]表示在k步數下,第一條路線所在行i1,第二條路線所在行i2

intmain()

for(

int k=

2;k<=n+n;k++)}

}}cout<[n][n]

return0;

}

方格取數(dp)

時間限制 1 sec 記憶體限制 128 mb 提交 9 解決 4 提交 狀態 討論版 命題人 quanxing 設有n n的方格圖,我們在其中的某些方格中填入正整數,而其它的方格中則放入數字0。如下圖所示 某人從圖中的左上角a出發,可以向下行走,也可以向右行走,直到到達右下角的b點。在走過的路上,...

方格取數 DP

description 設有n n的方格圖 n 10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數 取走後的方格中將變為數字0 此人從a點到b 點共...

方格取數(dp)

題目鏈結 大意 這題是數字三角形的高階版,數字三角形是從左上到右下路徑的最值,而這題是從左上到右下的任意兩條路徑的和的最值。思路 因為是兩條路徑每一步一定有兩個點 可能重合 所以可以根據閆氏dp分析法將狀態f i1,j1,i2,j2 表示為 兩條路徑分別走到 i1,j1 i2,j2 的所有路徑的和的...