各種動態規劃經典模型

2022-08-19 22:30:14 字數 537 閱讀 8056

1.lis

方法1. \(n^2\) 動態規劃

方法2. 對上面的動態規劃優化後,發現決策是可以簡單化的,就是一些決策可以直接捨棄掉,對應到搜尋就是剪枝,用二分查詢搞到\(n^log(n)\).

2.lcs

方法1.時間空間均為\(n^2\)的動態規劃。記\(f(i,j)\)為匹配到a的i和b的j.

上面可以壓縮一維空間。

3.lcis 最長公共上公升子系列。

方法一,套用lcs模型,得到\(n^3\)演算法。

優化上面,降到n^2

4.二叉樹的直徑

首先找重複子問題,發現二叉樹的最長鏈要麼過節點,要麼在子樹裡面,而子樹的是這個的子問題。

考慮動態規劃,

設\(d(i)\) 為以i為根的子樹的最長鏈,那麼,要麼是左面到葉節點的最遠距離加上右邊到葉節點的最遠距離,要麼答案在i的子樹裡面。所以一遍dfs即可完成計算

最長鏈同時還有乙個演算法,第一次dfs找到以1為根的最遠葉子,然後以葉子為根再找一遍。

配合動態規劃可以在\(o(n)\) 中找出所有點的最長鏈。

動態規劃演算法經典例題 動態規劃的經典模型

動態規劃演算法的核心就是記住已經解決過的子問題的解。記住求解的方式有兩種 自頂向下的備忘錄法 自底向上。線性模型的是動態規劃中最常用的模型,上文講到的鋼條切割問題就是經典的線性模型,這裡的線性指的是狀態的排布是呈線性的。例題1 是乙個經典的面試題,我們將它作為線性模型的敲門磚。例題1 在乙個夜黑風高...

動態規劃及其動態規劃經典例題

動態規劃是最重要 最經典的演算法之一,學好動態規劃對我們十分重要,掌握動態規劃對解決某些問題會起到事半功倍的效果。特點 可以把原始問題劃分為一系列子問題 求解每個子問題僅一次,並將其結果儲存到乙個表中,以後用到時直接訪問,不重複計算,節省時間。自底向上地計算 適用範圍 原問題可以分為多個相關子問題,...

動態規劃經典問題

from 實現在 維基百科對動態規劃的定義 動態規劃 英語 dynamic programming,簡稱dp 是一種在數學 電腦科學和經濟學中使用的,通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。動態規劃常常適用於有重疊子問題 1 和最優子結構性質的問題,動態規劃方法所耗時間往往遠少於...