前言:雖然自己做過幾個動態規劃的題目,看過題解後也能做出幾個二維的路徑問題,主要是對dfs進行優化。但是還是有點知其然不知其所以然的感覺,有兩個月左右沒做dp,現在讓我寫對乙個二維路徑dp都困難。所以開這個專題系統學習dp。
感謝:宮水三葉
本筆記根據三葉大佬的刷題日記進行學習記錄。
動態規劃解決什麼樣的問題?
答: 僅關心某個狀態,而不關係狀態如何轉移過來(這句話很深奧,仔細體會)。常與dfs等搜尋結合在一起,會儲存子狀態的解,且僅訪問/遍歷/執行一次,後續重複訪問可直接利用此結果。
動態規劃有相當多種類,其中最常見的就是路徑問題和揹包問題
首先從路徑問題開始著手
解決路徑動態規劃的方法:
(以下是之前我自己總結的經驗)
1.確定狀態轉移方程。
2.路徑問題中遍歷的方向。
做了專題訓練後的總結:
1.迭代方程
迭代方程根據邊界判斷的不同也會存在變化
2.迭代方向
與遍歷的方向和路徑的方向選擇有關
3.初始條件
一般是最開始源點對應的dp值,賦值操作
4.邊界條件
邊界時的迭代方程和一般迭代方程有一點差異
dp第一題試試手:
62. 不同路徑
class solution else if(i>0)else if(j>0)
}}
return a[m-1][n-1];
}};
本題迭代方程:a[m][n]=a[m-1][n]+a[m][n-1]
迭代方向:右和下
邊界情況:上邊緣,左邊緣
動態規劃之路徑選擇
example hdu 2571 命運 解 類似 裝配線排程問題 構造轉移方程 當前的最優解依賴前乙個最優解的選擇,整體的最優解的區域性也是最優的。include using namespace std templatet max t a,t b int main if i 1 temp sum i...
01串 動態規劃
時間限制 1000 ms 記憶體限制 65535 kb難度 2 描述 acm的zyc在研究01串,他知道某一01串的長度,但他想知道不含有 11 子串的這種長度的01串共有多少個,他希望你能幫幫他。注 01串的長度為2時,有3種 00,01,10。輸入 第一行有乙個整數n 0 輸出輸出不含有 11 ...
動態路徑規劃(二)
1 1 1 1 1 1 1 1 11.簡單遞迴。設某城市為當前城市,搜尋所有有路相連通的城市,並將其儲存到vector中。將當前城市標誌為已使用,遍歷vector中的下乙個城市,此時遞迴查詢與該城市相連的所有城市。當某個城市的所有相連的城市都遍歷完一遍後,將該城市標誌為未使用。2.遞迴結束的條件為找...