01揹包
#include int c[101][1001]=;//定義100個物品1000重量的總價值陣列
void calcmaxvalues(int n,int t_w)
,v[101]=;//w單個物品的重量,v單個物品的價值
for(i=1;i<=n;i++)
for(i=1;i<=n;i++)
else
}else
} }printf("%d",c[n][t_w]);
}int _tmain(int argc, _tchar* argv)
01揹包的空間優化版
#include int c[1001]=;//空間優化
void calcmaxvalueaboutbagpack_optimize(int n,int t_w)
,v[101]=; //w單個物品的重量,v單個物品的價值
for(i=1;i<=n;i++)
for(i=1;i<=n;i++)//n件物品
}} printf("%d",c[t_w]);
}int main()
完全揹包
都是空間優化過的,這個還可以進行優化。如果物品a的價值小於物品b的價值,且物品a的容量大於物品b,那麼物品a不用考慮。
#include int c[1001]=;//空間優化
void fullbagpack(int n,int t_w)
,v[101]=; //w單個物品的重量,v單個物品的價值
for(i=1;i<=n;i++)
for(i=1;i<=n;i++)//n件物品
}} printf("%d",c[t_w]);
}int _tmain(int argc, _tchar* argv)
多層揹包
空間優化過
#include int c[1001]=;//空間優化
void calcmaxvalueaboutmultiplebagpack_optimize(int t_n,int t_w)
,v[101]=,n[101]=; //w單個物品的重量,v單個物品的價值,n表示每個物品的件數
for(i=1;i<=t_n;i++)
for(i=1;i<=t_n;i++)//n件物品
}else }}
} //列印**看看是否與預期的一樣
for(int k=1;k<=t_w;k++)
printf("\n");
} printf("%d",c[t_w]);
}int main()
說明:_tmian 是vs2010開發環境生成的,換成mian即可。
揹包 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 求...