C 01揹包問題(動態規劃)

2021-10-09 19:55:46 字數 704 閱讀 2746

有 n 件物品和乙個容量是 v的揹包。每件物品只能使用一次。

第 i件物品的體積是 vi,價值是 wi。

求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。

輸出最大價值。

輸入格式

第一行兩個整數,n,v,用空格隔開,分別表示物品數量和揹包容積。

接下來有 n行,每行兩個整數 vi,wi,用空格隔開,分別表示第 i

件物品的體積和價值。

輸出格式

輸出乙個整數,表示最大價值。

資料範圍

0ac**:

#include

#include

using

namespace std;

int n,v;

int w[

1010];

//價值

int v[

1010];

//體積

int f[

1010][

1010];

//從前i個物品中選出總重不超過j的最大價值

intmain()

}printf

("%d"

,f[n]

[v])

;return0;

}

C 0 1揹包問題

0 1揹包問題 0 1揹包問題基本思想 p i,j 表示在前面i個物品總價值為j時的價值最大值。str i,j 表示在前面i個物品總價值為j時的價值最大值時的物品重量串。i 0 或者j 0時 p i,j 0 str i,j 第i件物品的在重量小於j時能夠放入揹包 p i,j p i 1,j w i ...

C 01揹包問題

01揹包問題 有n個重量和價值分別為wi,vi的物品。從這些物品中挑選出總重量不超過w的物品,求所有挑選方案中價值總和的最大值 輸入格式 nw v w輸出格式 價值總和最大值 輸入 42 3 1 23 4 2 25 輸出 7解題思路 對每個物品有兩種選擇,選或者不選。選擇該物品的話,總價值會增加,剩...

C 01揹包問題

有n件物品和乙個容量為v 的揹包。放入第 i 件物品耗費的空間是 c i 得到的價值是 w i 求解將哪些物品裝入揹包可使價值總和最大。這是最基礎的揹包問題,特點是 每種物品僅有一件,可以選擇放或不放。用子問題定義狀態 即 f i,v 表示前i件物品恰放入乙個容量為v的揹包可以獲得的最大價值。則其狀...