ACM寒假集訓 7 dp(動態規劃)

2021-10-18 06:14:41 字數 999 閱讀 5532

將待求解問題分解成若干個子問題

經典三角問題

;//記憶陣列

intmaxsum

(int i,

int j)

}int

main

(void)}

cout<<

maxsum(1

,1);

return0;

}由於遞迴會導致重複計算,使得時間複雜度變高,所以上面的記憶陣列用來儲存結果。

一般的遞迴都可以用陣列,就是遞推寫出來

#include

#include

#include

#define maxm 1010

using namespace std;

int n;

int arr[maxm]

[maxm]

;int maxsum[maxm]

[maxm]

;//儲存結果的陣列

intmain

(void)}

for(

int i=

1;i<=n;i++

)for

(int i=n-

1;i>=1;

--i)

} cout<

[1]<

//最頂上的數字就是最大的

return0;

}

總結就是還是從下往上看

寒假集訓小結之動態規劃

time limit 1000 ms memory limit 65536 kib submit statistic problem description 給定乙個由n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給定的由n行...

寒假集訓作業(6) 動態規劃初步

include using namespace std int money 8 long int dp 8 251 int main for i 0 i 251 i for i 2 i 8 i else while cin n n 0 找零錢 dynamic programming 最後還是用一下 ...

大一寒假集訓4 動態規劃

個人對dp的理解 記憶化,從小到大,先求出小問題的最優解,然後狀態轉移逐步求出原問題的解。遞推是神,des。使用dp前提 步驟 確定的子問題和求狀態轉移方程的切入點 對於題目中給出的步驟,明示的,比如上下移動的規則,字串的增刪改。暗示的,揹包問題的裝或不裝,裝乙個或裝多個。注意的點 1 空間不夠可以...