SSL 1236逃亡的準備 多重揹包

2021-10-12 06:27:06 字數 1112 閱讀 9416

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他們一起逃亡,現在有許多的東西要放到赫敏的包裡面,但是包的大小有限,所以我們只能夠在裡面放入非常重要的物品,現在給出該種物品的數量 體積 價值的數值,希望你...