總結幾個網上關於動態規劃的經典例題,用python實現
1.入門:
湊硬幣:用1,3,5面值的硬幣湊i元,最少需要幾個硬幣
#author:xinxinzhang
n=12#湊11元
total=[i for i in range(n)]
v=[1,3,5]
for i in range(1,n):
for j in v:
if j<=i and (total[i-j]+1)
2.初級:
求最長非降子串行長:
#author:xinxinzhang
def lis(arr):
d = [1] * len(arr)
len_num = len(arr)
for i in range(1,len_num):
for j in range(i):
if arr[j] <= arr[i] and d[i]len_num:
d[i]=len_num
return d[-1]
print(lis([3,2,1,5]))
持續更新。。 動態規劃專項advanced LA 4625
這道題要求解的問題是使最大值最小的問題,所以可以加乙個引數加以限制,然後判斷是否可行用二分的方法求解答案。這裡二分每個half segment上的最大重量,然後剩下來需要做的就是判斷是否存在乙個方案滿足該條件。容易想到的是貪心,即每一段取盡量多的pieces,看m 1段能否將pieces全部取完,然...
動態規劃 dp
威威貓系列故事 打地鼠 威威貓最近不務正業,每天沉迷於遊戲 打地鼠 每當朋友們勸他別太著迷遊戲,應該好好工作的時候,他總是說,我是威威貓,貓打老鼠就是我的工作!無話可說.我們知道,打地鼠是一款經典小遊戲,規則很簡單 每隔乙個時間段就會從地下冒出乙隻或多隻地鼠,玩遊戲的人要做的就是打地鼠。假設 1 每...
動態規劃,dp
線性動規區間動規樹形動規 區間動規 根據題目要求,全域性最優滿足區域性最優 典型題例 加分二叉樹 洛谷1040 題目介紹 題目描述 設乙個n 個節點的二叉樹t 的中序遍歷為 1,2,3,n 其中數字 1,2,3,n 為節點編號。每個節點都有乙個分數 均為正整數 記第j 個節點的分數為dj。二叉樹t ...