前言
動态規劃是很重要的一個知識點,大大小小的比賽總會有一兩道DP題,足以說明動态規劃的重要性。
動态規劃主要是思想,并沒有固定的模闆,那麼,怎麼判斷題目是不是動态規劃呢?
DP題一般都會滿足三個條件:子問題重疊、無後效性、最優子結構性質。
動态規劃把原問題看作若幹個重疊子問題,每個子問題的求解過程都是一個階段,
動态規劃要求目前階段不會被後續階段影響(即已經解決的子問題不被後續子問題影響),這便是無後效性。
一般情況下,動态規劃在解決最優問題時,每個階段的最優解應該由前面階段的最優解導出,這便是最優子結構性質。
知道題目是動态規劃後,怎麼解決呢?
解決動态規劃問題,重點在于狀态與狀态轉移方程:
顧名思義,狀态通常指某種情況下目标的某種情況,要注意邊界;
狀态轉移方程指把目前階段的狀态轉移到下一個階段的狀态的方程。
狀态與狀态轉移方程因題而異,想要熟練的定義出狀态、得出狀态轉移方程,最主要的方法便是多刷題,DP題做多了自然就知道如何定義了。
具體的各類DP與題目如下。
目錄
本蒟蒻在這裡總結了一下動态規劃的部分知識點,後續會不定期更新。
-
背包詳解
-
線性DP詳解
轉載于:https://www.cnblogs.com/I-Love-You-520/p/11423922.html