禮物和糖果

2021-09-20 06:24:56 字數 1186 閱讀 1224

問題描述

何老闆要給大家買節日禮物,他有m元錢,學校小賣部有n種禮品,因為店長和何老闆是熟人,所以若第i種禮品買x(x>0)件的話,店長會給何老闆ai*x+bi顆糖果。

因為何老闆非常喜歡吃糖,所以他希望獲得的糖果越多越好。現給出每種禮品的單價wi、ai值與bi值,問何老闆最多能得到多少顆糖果?

輸入格式

第一行,兩個空格間隔的整數m和n

接下來n行,每行三個整數wi, ai 和 bi,描述一種禮物的情況。

輸出格式

一行,乙個整數,表示何老闆能得到的最大糖果數

樣例輸入

100 2

10 2 1

20 1 1

樣例輸出

提示

樣例說明,何老闆買了10個1號禮物,獲得 2 × 10 + 1 = 21顆糖

1 ≤ m ≤ 2000

1 ≤ n ≤ 1000

0 ≤ ai, bi ≤ 2000

1 ≤ wi ≤ 2000

/*

狀態:f[j]表示當用了j錢時所得到的最大糖果數

方程:1.完全揹包: f[j] = max(f[j], f[j - w[i]] + a[i]);

2.01揹包: f[j] = max(f[j], f[j - w[i]] + a[i] + b[i]);

邊界:1 <= i <= n;

完全揹包:w[i] <= j <= m;

01揹包:m >= j >= w[i];

總結:1.要善於把一般的揹包問題轉化成揹包模型

*/#include using namespace std;

int w[2000 + 5] = ;

int a[2000 + 5] = ;

int b[2000 + 5] = ;

int f[2000 + 5] = ;

int main()

for(int i = 1; i <= n; i++)

for(int j = w[i]; j <= m; j++) }

printf("%d", f[m]);

return 0;

}

nkoi P3793 禮物和糖果

何老闆要給大家買節日禮物,他有m元錢,學校小賣部有n種禮品,因為店長和何老闆是熟人,所以若第i種禮品買x x 0 件的話,店長會給何老闆ai x bi顆糖果。因為何老闆非常喜歡吃糖,所以他希望獲得的糖果越多越好。現給出每種禮品的單價wi ai值與bi值,問何老闆最多能得到多少顆糖果?輸入格式 第一行...

P3793禮物和糖果

問題描述 何老闆要給大家買節日禮物,他有m元錢,學校小賣部有n種禮品,因為店長和何老闆是熟人,所以若第i種禮品買x x 0 件的話,店長會給何老闆ai x bi顆糖果。因為何老闆非常喜歡吃糖,所以他希望獲得的糖果越多越好。現給出每種禮品的單價wi ai值與bi值,問何老闆最多能得到多少顆糖果?輸入格...

歐姆諾姆和糖果

一天,歐姆諾諾姆來到了朋友家裡,他發現了許多糖果。有藍色和紅色兩種。他知道每顆紅色糖果重wr克,每顆藍色糖果重wb克。吃一顆藍色糖果會給他帶來hb的歡樂值,吃一顆紅色糖果會給他帶來hr的歡樂值。歐姆諾姆最多只能吃c克的糖果,而且每一顆糖果不能只吃一半。現在他想通過吃藍色和紅色的糖果來獲得最大的歡樂值...