Lintcode125 Backpack || solution 題解

【題目描述】

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/]()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章