22 1 26 遞迴改動態規劃

2022-09-19 17:09:11 字數 922 閱讀 2352

1.套路:

1)遞迴:根據題目寫出遞迴版本;

2)記憶化搜尋:用某種結構儲存已經計算過的資訊,省去重複計算的過程;

3)嚴格表結構:將遞迴套路轉化為填表,注意考慮越界問題;

2.問題分析:

1)機械人走路問題:

code(暴力遞迴版本):

public static int process(int n, int e, int rest, int cur)

​public static void main(string args)

​//結果輸出   3

public static int process(int n, int e, int rest, int cur, int dp)

if(cur == 1)

dp[rest][cur] = process(n, e, rest - 1, 2, dp);

else if(cur == n)

dp[rest][cur] = process(n, e, rest - 1, n - 1, dp);

else

dp[rest][cur] = process(n, e, rest - 1, cur - 1, dp)

+ process(n, e, rest - 1, cur + 1, dp);

return dp[rest][cur];

}public static void walk1(int n, int e, int rest, int cur)

{int dp = new int[rest+1][n+1];//記錄表

for (int i = 0 ; i <=rest ; i++)

{for (int j = 0 ; j <=n ; j++)

{dp[i][j] = -1;

遞迴改動態規劃 正則匹配

題目描述 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 abaca 匹配,但是與 aa.a 和 ab a 均不匹配 遞迴解法,原因都在注...

動態規劃 遞迴

動態規劃是求解包含重疊子問題的最優化方法 1.基本思想 將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解 注意 不是簡單分而治之 2.只能應用於有最優子結構的問題 即區域性最優解能決定全域性最優解,或問題能分解成子問題來求解 3.具有無後效性。它要求每乙個問題的決策,不能夠對解...

遞迴 動態規劃 POJ Help Jimmy

1 3 8 17 20 0 10 8 0 10 13 4 14 3 首先明確遞迴函式的功能 由於向左走和向右走是性質一樣的兩個子問題,因此此時遞迴函式的就是針對當前平板的向左 右走,計算時間 遞迴結束條件 當遞迴到第n個平板時,遞迴結束,返回當前高度 當前高度小於限定的最高高度 確定遞迴的等價關係 ...