time limit:1000ms
memory limit:65536k
在《harry potter and the deathly hallows》中,harry potter他們一起逃亡,現在有許多的東西要放到赫敏的包裡面,但是包的大小有限,所以我們只能夠在裡面放入非常重要的物品,現在給出該種物品的數量、體積、價值的數值,希望你能夠算出怎樣能使揹包的價值最大的組合方式,並且輸出這個數值,赫敏會非常地感謝你。
(1)第一行有2個整數,物品種數n和揹包裝載體積v。
(2)2行到n+1行每行3個整數,為第i種物品的數量m、體積w、價值s。
僅包含乙個整數,即為能拿到的最大的物品價值總和。
2 10
3 4 3
2 2 5
【注釋】
選第一種乙個,第二種兩個。
結果為31+52=13
【資料規模】
對於30%的資料
1<=v<=500
1<=n<=2000
1<=m<=10
1<=w<=20
1<=s<=100
對於100%的資料
1<=v<=500
1<=n<=2000
1<=m<=5000
1<=w<=20
1<=s<=100
這是一道多重揹包,可以拆成許多個物品,變成01揹包。
但會超記憶體,可以用二進位制優化。
把m拆成1+2+4+8+16+2n+x=m
x<2n+1
每乙個的體積和價值都乘分的數量。
再做01揹包。
#include
#include
#include
using
namespace std;
long
long n,v,len,w[
64010
],s[
64010
],f[
1010];
void
input()
if(m)
//若有剩餘
}return;}
voiddp(
)int
main()
SSL 1236 逃亡的準備
在 harry potter and the deathly hallows 中,harry potter他們一起逃亡,現在有許多的東西要放到赫敏的包裡面,但是包的大小有限,所以我們只能夠在裡面放入非常重要的物品,現在給出該種物品的數量 體積 價值的數值,希望你能夠算出怎樣能使揹包的價值最大的組合方...
逃亡的準備
在 harry potter and the deathly hallows 中,harry potter他們一起逃亡,現在有許多的東西要放到赫敏的包裡面,但是包的大小有限,所有我們只能夠在裡面放入非常重要的物品,現在給出該種物品,現在給出該種物品的數量 體積 價值的資料,希望你能夠算出能使揹包的價...
逃亡的準備 hallows
逃亡的準備 hallows 問題描述 在 harry potter and the deathly hallows 中,harry potter他們一起逃亡,現在有許多的東西要放到赫敏的包裡面,但是包的大小有限,所以我們只能夠在裡面放入非常重要的物品,現在給出該種物品的數量 體積 價值的數值,希望你...