第二天叫醒我的不是鬧鐘,是夢想!
為了慶賀班級在校運動會上取得全校第一名成績,班主任決定開一場慶功會,為此撥款購買獎品犒勞運動員。
期望撥款金額能購買最大價值的獎品,可以補充他們的精力和體力。
輸入格式
第一行二個數n,m,其中n代表希望購買的獎品的種數,m表示撥款金額。
接下來n行,每行3個數,v、w、s,分別表示第i種獎品的**、價值(**與價值是不同的概念)和能購買的最大數量(買0件到s件均可)。
輸出格式
一行:乙個數,表示此次購買能獲得的最大的價值(注意!不是**)。
資料範圍
n≤500,m≤6000,
v≤100,w≤1000,s≤10
輸入樣例:
5 1000
80 20 4
40 50 9
30 50 7
40 30 6
20 20 1
輸出樣例:
1040
#include.h>
using namespace std;
const int n
=15000
;int dp[n]
;int n,m;
int v,w,cnt;
int main()
else
for(int j=m;j>=c*v;j--
) dp[j]
=max
(dp[j]
,dp[j-c*v]
+c*w);}
} cout<<}
慶功會 多重揹包問題c
慶功會 問題描述 w 為了慶賀班級在校運動會上取得全校第一名成績,班主任決定開一場慶功 會,為此撥款購買獎品犒勞運動員。期望撥款金額能購買最大價值的獎品,可以補充他們的精力和體力。輸入格式 w 第一行二個數 n n 500 m m 6000 其中n 代表希望購買的獎品的種數,m 表示撥款金額。w 接...
多重揹包二進位制優化
多重揹包二進位制優化 將價值數量相同的物品分成1,2,4,8.因為100以內任何數都可以由幾個2的n次方數組成。所以,有遍歷沒乙個數變為遍歷每乙個2的n次方數。例題 有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相...
多重揹包(二進位制優化)
馬上就要輕院校賽了,沒時間了,下面是網上找的多重揹包,感覺很好 void zeroonepack int cost,int weight,int n void completepack int cost,int weight,int n void multipack int c,int w,int ...