動態規劃的思維其實就是遞推的思維,而記憶型遞迴擅長解決重疊子問題不重複求解。
動態規劃用於解決多階段決策最優化問題
三要素:階段 狀態 決策。
兩個條件:最優子結構(最優化原理),無後效性:當前狀態是前面狀態的完美總結
動規解題的一般思路:
是否可以用動態規劃,否則用搜尋。
模型匹配:多做經典題目,掌握經典模型。
一維:上公升子串行模型,揹包模型。
二維:最長公共子串行問題。
尋找規律:規模由大到小,或者由小到大,做逐步分析。
放寬條件或增加條件。
動規解題的一般過程:
找到過程演變中變化的量(狀態),以及變化的規律(狀態轉移方程)。
確定一些初始狀態,通常需要dp陣列來儲存。
利用狀態轉移方程,推出最終答案。
動規解題的解法:
自頂向下,遞迴。如果有重疊子問題,帶備忘錄。
自底向上,遞推。
貪心演算法和動態規劃:
可以用區域性最優解來推導全域性最優解,即動態規劃。
動態規劃:當前問題的最優解,不能從上一階段子問題簡單得出,需要前面多階段多層子問題共同計算出,因此需要保留歷史上求解過的子問題及其最優解。
動態規劃小結
現在做一下動態規劃的小結 1.揹包問題 這是一類超級經典很基礎的動態規劃,好多動態規劃題目都能用揹包的方法寫出或者是揹包的變形.這些在揹包九講中說的很清楚 鏈結 這是網上我隨便找的乙個講的比較全的部落格 這些揹包問題給我的乙個啟發就是 轉換,通過一系列的操作,轉換為01揹包 揹包給我的感受 很大一部...
動態規劃小結
1.最長上公升子串行問題 給出乙個由n個數組成的序列x 1.n 找出它的最長單調上公升子串行。即求最大的m和a1,a2 am,使得a12.動態規劃求解思路分析 o n 2 經典的o n 2 的動態規劃演算法,設a i 表示序列中的第i個數,f i 表示從1到i這一段中以i結尾的最長上公升子串行的長度...
動態規劃小結
近期覺得動態規劃的題目一直不能夠很好的理解,自己也不能很好的掌握,因此就做了一定量的練習,使得自己能夠掌握這一類題目的思路。動態規劃在維基百科的定義為 一種在數學 管理科學 電腦科學 經濟學和生物資訊學中使用的,通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。動態規劃的思想為 若要解決乙...