動態規劃 Cherry Pickup

2022-08-11 08:42:16 字數 761 閱讀 1521

2020-02-03 17:46:04

問題描述

問題求解

非常好的題目,和two thumb其實非常類似,但是還是有個一點區別,就是本題要求最後要到達(n - 1, n - 1),只有到達了(n - 1, n - 1)才算是有效解,two thumb是一定會有解的,所以不用加特別判斷。

也是一種路徑規劃類的題目,難點依然是狀態的表示,我們這裡使用的p1,p2的座標位置作為狀態。

另外,還需要注意的是在超界的時候,我們需要返回的是integer.min_value,這樣就可以規避掉一些中間節點到不了終點的情況。

int dp = new int[51][51][51];

public int cherrypickup(int grid)

}int res = dfs(grid, 0, 0, 0);

return dp[n - 1][n - 1][n - 1] == -1 ? 0 : res;

}private int dfs(int grid, int x1, int y1, int x2)

return dp[x1][y1][x2];

}

動態規劃 什麼是動態規劃?

先來看看 資訊學奧賽一本通第5版 是怎麼說的 動態規劃程式設計是對解最優化問題的一種途徑 一種方法,而不是一種特殊演算法。不像前面所述的那些搜尋或數值計算那樣,具有乙個標準的數學表示式和明確清晰的解題方法。動態規劃程式設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,...

mysql動態規劃 動態規劃

動態規劃 能夠動態規劃的問題具有以下特點 可分解成規模更小的子問題 子問題的結果可復用 關鍵是要理解狀態轉移方程的含義就好啦!數字三角形 問題描述 在數字三角形尋找從頂到底的路徑,使得路徑經過的數字之和最大。規定每一步只能往左下或右下走,求出最大路徑和。遞迴解法 include include us...

《動態規劃》 ACM 動態規劃例題詳解

描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 圖1 圖1給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,你的任務就是找到最大的和。注意 路徑上的每一步只能從乙個數走到下一層上和它最近的左邊的那個數或者右邊的那個數。輸...