動態規劃之路徑規劃01

2022-09-09 06:51:15 字數 1018 閱讀 7315

前言:雖然自己做過幾個動態規劃的題目,看過題解後也能做出幾個二維的路徑問題,主要是對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.遞迴結束的條件為找...