python動態規劃dp專項

2021-08-19 20:33:58 字數 612 閱讀 5386

總結幾個網上關於動態規劃的經典例題,用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 ...