01揹包,完全揹包,多重揹包

2021-08-04 23:40:06 字數 1169 閱讀 3132

1. 01揹包

每種物品僅有一件,可以選擇放或不放。

2.完全揹包:

有 n

種物品和乙個容量為

v的揹包,每種物品都有無限件可用。第

i種物品的費用是

c[i]

,價值是

w[i]

。 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量, 且價值總

和最大。

3.多重揹包:

轉移方程:

//c:物品所佔容量;w物品的價值;m物品的數量;v為揹包容量

void zeroonepack(int cost,int weight)//cost 為費用, weight 為價值

void completepack(int cost,int weight)

void multiplepack(int cost ,int weight,int amount)

{ if(cost*amount>=v) completepack(cost,weight);

else

{for(int k=1;k

揹包 01揹包,完全揹包,多重揹包

哈哈 01揹包 f i v max 完全揹包 f i v max 多重揹包 f i v max include include include include include define maxn 1000 using namespace std int n,cap int w maxn 重量 花...

01揹包 完全揹包 多重揹包

01揹包 zeroonepack 有n件物品和乙個容量為v的揹包,每種物品均只有一件。第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。include include includeusing namespace std const int n 1000 10 int ...

01揹包 完全揹包 多重揹包

01揹包 zeroonepack 有n件物品和乙個容量為v的揹包。每種物品均只有一件 第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。完全揹包 completepack 有n種物品和乙個容量為v的揹包,每種物品都有無限件可用。第i種物品的費用是c i 價值是w i 求...