【動態規劃】多重揹包
時間限制: 1 sec 記憶體限制: 64 mb
提交: 5 解決: 5
[提交][狀態][討論版]
張琪曼:「魔法石礦裡每種魔法石的數量看起來是足夠多,但其實每種魔法石的數量是有限的。」
李旭琳:「所以我們需要改變裝包策略啦。」
現有n(n≤10)種魔法石和乙個容量為v(0第一行為兩個數字,即v和n。以下n行為每種物品的空間,價值和數量。
最大價值總和。
8 22 100 4
4 100 2
400
#include #include#define inf 0x3f3f3f3f
using
namespace
std;
int f[222],v[11],w[11],num[11
];int
n,m;
//m揹包的總容量、v物品的體積、w物品的價值
void onezeropack(int m,int v,int w) //
0-1揹包
//m揹包的總容量、v物品的體積、w物品的價值
void completepack(int m,int v,int w) //
完全揹包
//m揹包的總容量、v物品的體積、w物品的價值、num物品的數量
void multiplepack(int m,int v,int w,int num)//
多重揹包
int k=1
;
for(k=1;k<=num;k<<=1
)
if(num)
onezeropack(m,num*v,num*w);
}int
main()
cout
}return0;
}
posted on
2016-08-03 17:23
asuml 閱讀(
...)
編輯收藏
動態規劃 多重揹包
概念 多重揹包 有n種物品和乙個容量為v的揹包。第i種物品最多有n i 件可用,每件費用是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,並且價值總和最大。這類問題即為多重揹包問題。把多重揹包當成01揹包 我們樸素的想法就是,對於某一種物品,我們看取乙個的時候,跑一...
動態規劃4 多重揹包
1.這裡區別一下三種揹包 1 01揹包 揹包有最大容量c,給出n種物品,每種物品僅僅乙個,有自己的重量和價值wi和vi,求揹包可裝下的最大價值 2 完全揹包 揹包有最大容量c,給出n種物品,每種物品無限個,有自己的重量和價值wi和vi,求揹包可裝下的最大價值 3 多重揹包 揹包有最大容量c,給出n種...
動態規劃 多重揹包問題
有 n 種物品和乙個容量為 w 的揹包,每種物品都有無限件可用。第 i 種物品的重量是 w i 價值是 v i 最多有 s i 件 求解將哪些物品裝入揹包可使這些物品的重量總和不超過揹包容量,且價值總和最大。第一行兩個整數,n 和 v 用空格隔開,分別表示物品總數和揹包的容積 接下來有 n 行。每行...