動態規劃 線性DP

2021-10-02 13:54:06 字數 680 閱讀 4032

線性dp:即線性動態規劃,不侷限於「線性時間複雜度」的一維動態規劃。與數學中的「線性空間」類似,如果乙個動態規劃演算法的「狀態」包含多個維度,但在每個維度上都具有「線性」變化的「階段」,那麼該動態規劃演算法同樣稱為「線性dp"。在這類問題中,需要計算的物件表現出明顯的維度以及有序性,每個狀態的求解直接構成乙個階段,這使得dp的狀態表示就是階段的表示。因此,我們只需要在每個維度上各取乙個座標值作為dp的狀態,自然就可以描繪出「已求解部分」在狀態空間中的輪廓特徵,該輪廓的進展就是階段的推移。另外,每個狀態的求解顯然只與之前階段的最優解有關,最優子結構性質也得以驗證。接下來,我們按順序依次迴圈每個維度,根據問題要求遞推求解的具體實現過程也就順理成章了。-----《演算法高階指南》

如經典:最長上公升子串行(lis)最長公共子串行(lcs)數字三角形

線性dp練習題:

lis: poj - 3903s tock exchange 最長上公升子串行 +二分查詢

lcs: hdu 1159 最長公共子串行

lcis:ch 5101 :lcis(最長公共上公升子串行)

5維dp: poj 3666 ****** the grade

動態規劃 線性dp 初級

攔截飛彈 洛谷p1020 飛彈攔截 o n logn 的解法 dilworth定理 定理1 令 x,是乙個有限偏序集,並令r是其最大鏈的大小。則x可以被劃分成r個但不能再少的反鏈。其對偶定理稱為dilworth定理 定理2 令 x,是乙個有限偏序集,並令m是反鏈的最大的大小。則x可以被劃分成m個但不...

動態規劃 線性dp 筆記

線性dp的經典問題 lis lcs 數字三角形。最長上公升子串行 lis 問題描述 給定乙個長度為n的數列a,求數值單調遞增的子串行的長度最長是多少。a的任意子序列可表示為b 其中k1最長公共子串行 lcs 問題描述 給定兩個長度分別為n和m的自負床a和b,求既是a的子串行又是b的子串行的字串長度最...

動態規劃 線性 DP 序列問題

子串行 乙個序列 a a1,a2,an 中任意刪除若干項,剩餘的序列叫做 a 的乙個子串行。也可以認為是從序列 a 按原順序保留任意若干項得到的序列。例如 對序列 1,3,5,4,2,6,8,7 來說,序列 3,4,8,7 是它的乙個子串行。公共子串行 如果序列 c 既是序列 a 的子串行,也是序列...