二維取數dp

2022-09-11 01:00:38 字數 745 閱讀 7003

acwing 1027.方格取數

對於走一次,容易得到狀態轉移方程為:$f[i][j] = max(f[i-1][j], f[i][j-1]) + w[i][j]$。

而對於走兩次時,設定狀態為$f[i_1][j_1][i_2][j_2]$表示第一條路徑從$(1, 1)$走到$(i_1, j_1)$,第二條路徑從$(1, 1)$走到$(i_2, j_2)$取的數的最大和。

該題的核心是:如何處理對於同乙個格仔不能取兩次。分析可知,只有當$i_1 + j_1 = i_2+j_2$的時候,取的格仔才有可能是同乙個格仔,這也啟發我們可以將狀態降一維。

用$k = i_1+j_1 = i_2+j_2$,這樣狀態就變成了$f[k][i_1][i_2]$。

平面二維DP

馬攔過河卒 原題傳送門 這一到題目也是比較基礎的動態規劃,也可以理解為是遞推,主要是運用加法原理,思維難度不大。我們要求從 0,0 到 n,n 的方案總數,如果沒有馬的話,我們可以這麼做 設 f i j 為從 0,0 走到 i,j 的方案總數,我們知道一定是有上面和左邊走來,所以只需要累加上面和左邊...

完美序列(二維dp)

題目描述 已知乙個長度為l的序列 b1,b2,b3,bl 1 b1 b2 b3 bl n 若這個序列滿足每個元素是它後續元素的因子,換句話說就是對於任意的i 2 i l 都滿足bi bi 1 0 其中 代表求餘 則稱這個序列是完美的。你的任務是對於給定的n和l,計算出一共有多少序列是完美序列。由於答...

數塔 HDU 2084 二維方格DP

problem description 在講述dp演算法的時候,乙個經典的例子就是數塔問題,它是這樣描述的 有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?已經告訴你了,這是個dp的題目,你能ac嗎?input 輸入資料首先包括乙個整數c,表示測試...