動態規劃 多重揹包

2021-09-12 01:34:31 字數 1067 閱讀 7503

【動態規劃】多重揹包

時間限制: 1 sec  記憶體限制: 64 mb

提交: 5  解決: 5

[提交][狀態][討論版]

張琪曼:「魔法石礦裡每種魔法石的數量看起來是足夠多,但其實每種魔法石的數量是有限的。」

李旭琳:「所以我們需要改變裝包策略啦。」

現有n(n≤10)種魔法石和乙個容量為v(0第一行為兩個數字,即v和n。以下n行為每種物品的空間,價值和數量。

最大價值總和。

8 2

2 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 行。每行...