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