大一寒假集訓4 動態規劃

2022-06-29 12:15:09 字數 468 閱讀 3960

個人對dp的理解:

記憶化,從小到大,先求出小問題的最優解,然後狀態轉移逐步求出原問題的解。遞推是神,des。

使用dp前提:

步驟:

確定的子問題和求狀態轉移方程的切入點:

對於題目中給出的步驟,明示的,比如上下移動的規則,字串的增刪改。暗示的,揹包問題的裝或不裝,裝乙個或裝多個。

注意的點:

1、空間不夠可以考慮滾動陣列

2、tle可以先考慮對求狀態的值的優化,比如樹狀陣列維護最大值,優化單調棧。

其餘收穫:

揹包問題:

一維樹狀陣列(維護區間和):

單調棧優化和上公升子串行:

upper_bound和lower_bound:

寒假集訓小結之動態規劃

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

大一寒假集訓(9) 優先佇列

定義乙個priority queue的方法為 priority queue name type通常為結構體 其中,type可以是任何基本型別或者容器,name為優先隊 列的名字。和queue不一樣的是,priority queue沒有front 和back 而只能通過top 或pop 訪問隊首元素 ...

寒假集訓作業(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 最後還是用一下 ...