【題目描述】
Givennitems with size Aiand value Vi, and a backpack with sizem. What's the maximum value can you put into the backpack?
給出n個物品的體積A[i]和其價值V[i],將他們裝入一個大小爲m的揹包,最多能裝入的總價值有多大?
【注】:A[i], V[i], n, m均爲整數。你不能將物品進行切分。你所挑選的物品總體積需要小於等於給定的m。
【題目鏈接】
[www.lintcode.com/en/problem/backpack-ii/]()
【題目解析】
首先定義狀態K(i,w)K(i,w)K(i,w) 爲前 iii 個物品放入size爲 www 的揹包中所獲得的最大價值,則相應的狀態轉移方程爲:K(i,w)=max{K(i−1,w),K(i−1,w−wi)+vi}K(i,w) = \max {K(i-1, w), K(i-1, w - w_i) + v_i}K(i,w)=max{K(i−1,w),K(i−1,w−wi)+vi}
使用二維矩陣保存結果result,返回result矩陣的右下角元素——揹包size限制爲m時的最大價值。
【參考答案】
[www.jiuzhang.com/solutions/backpack-ii/]()