SSL 1236 逃亡的準備

2021-10-12 06:35:17 字數 995 閱讀 2268

在《harry potter and the deathly hallows》中,harry potter他們一起逃亡,現在有許多的東西要放到赫敏的包裡面,但是包的大小有限,所以我們只能夠在裡面放入非常重要的物品,現在給出該種物品的數量、體積、價值的數值,希望你能夠算出怎樣能使揹包的價值最大的組合方式,並且輸出這個數值,赫敏會非常地感謝你。

(1)第一行有2個整數,物品種數n和揹包裝載體積v。

(2)2行到n+1行每行3個整數,為第i種物品的數量m、體積w、價值s。

僅包含乙個整數,即為能拿到的最大的物品價值總和。

2103

4322

5

13
1<=v<=500

1<=n<=2000

1<=m<=5000

1<=w<=20

1<=s<=100

聽隔壁大佬wcr說是二進位制拆分,自行學習後厚顏無恥地滾來講解了:

二進位制拆分基於揹包問題,是將個數x,體積y,價值z分為n個單獨揹包,其中第i個的體積為2i-1*y,價值為2i-1*z,使∑2i-1(1<=i<=n)<=x,最後若還有剩餘,則再補充乙個揹包,體積為(x-∑2i-1(1<=i<=n))*y,價值為(x-∑2i-1(1<=i<=n))*z,將時間複雜度從o(kx)減為o(klogx)

#include

#include

using

namespace std;

int q,dp[

510]

,x,y,z,n,s=0;

void

ddp(

int xx,

int yy)

//即時揹包

intmain()

if(x!=0)

ddp(x*y,x*z);}

printf

("%d"

,dp[n]);

return0;

}

SSL 1236逃亡的準備 多重揹包

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