題目:動態規劃(1)
題目描述如下:
1~8表示8個區段,紅色標出每個區段的工價,橫軸表示時間,每個時間點只能完成乙份工,請問乙個員工一天最多可以賺多少錢?
#注意:prev和vi為了索引i從0開始,故加入prev[0]、vi[0]的初始化值
#該初始化值不影響計算,只為了使索引從0開始
prev =[0
,0,0
,0,1
,0,2
,3,5
]vi =[0
,5,1
,8,4
,6,3
,2,4
]dp =[0
]#邊界條件
for i in
range(1
,9):
max(dp[i-1]
,dp[prev[i]
]+vi[i]))
print
(max
(dp)
)
題目出自b站教學: 動態規劃題目特性
1 此類問題是乙個由多決策產生最優值的最優化問題.決策 是指在問題可以按時間順序分成若干相互聯絡的階段,每乙個階段都需要做出決策,產生最優值,整個求解過程中的決策是乙個決策序列.最優化問題 眾所周知在資訊學之中有四大類問題 判定性問題 構造性問題 計數問題和最優化問題。其中最優化問題遇到的較多,而最...
動態規劃 經典題目
made by syx time 2010年7月17日 13 58 47 矩陣連乘 最長公共子串行 最長公共子串行 include char x 8 char y 7 int b 9 8 int c 9 8 void printarray int i1,int j1,int i2,int j2,in...
動態規劃題目彙總
70.爬樓梯 方法 動態規劃 演算法不難發現,這個問題可以被分解為一些包含最優子結構的子問題,即它的最優解可以從其子問題的最優解來有效地構建,我們可以使用動態規劃來解決這一問題。第 i 階可以由以下兩種方法得到 在第 i 1 階後向上爬一階。在第 i 2 階後向上爬 2階。所以到達第 ii階的方法總...