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 求...