PAT乙級 1020 月餅 25

2021-07-22 09:59:58 字數 1667 閱讀 5141

題目

月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量、總售價、以及市場的最大需求量,請你計算可以獲得的最大收益是多少。

注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有3種月餅,其庫存量分別為18、15、10萬噸,總售價分別為75、72、45億元。如果市場的最大需求量只有20萬噸,那麼我們最大收益策略應該是賣出全部15萬噸第2種月餅、以及5萬噸第3種月餅,獲得 72 + 45/2 = 94.5(億元)。

輸入格式

每個輸入包含1個測試用例。每個測試用例先給出乙個不超過1000的正整數n表示月餅的種類數、以及不超過500(以萬噸為單位)的正整數d表示市場最大需求量。隨後一行給出n個正數表示每種月餅的庫存量(以萬噸為單位);最後一行給出n個正數表示每種月餅的總售價(以億元為單位)。數字間以空格分隔。

輸出格式

對每組測試用例,在一行中輸出最大收益,以億元為單位並精確到小數點後2位。

輸入樣例

3 20

18 15 10

75 72 45

輸出樣例

94.50

pat鏈結

struct存資訊

struct moon

moon[1010];

貪心演算法,將貨物按單價排序。按單價,由高到低列舉貨物,更新剩餘需求量d,更新利潤profit

/**

* @tag pat_b_1020

* @date 2016-9-4 18:55-19:15

* @version 1.0

* @language c++

* @ranking 670/756

* @function null

*/#include

#include

#include

#include

using

namespace

std;

struct moon

moon[1010];

bool cmp(moon a, moon b)

int main(int argc, char

const *argv)

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

//按單個利潤,從高到低排序

sort(moon, moon+n, cmp);

//從利潤高的開始,將profit加進來

for(int i = 0; iif(d > moon[i].store)

else

}printf("%.2f\n" ,profit);

return

0;}

1.注意題目要求,如本題說的「正數」,不能想當然理解為正整數,而要用double型別

2.sort排序演算法複習

bool cmp(moon a, moon b)

…… //按單個利潤,從高到低排序

sort(moon, moon+n, cmp);

PAT 乙級 1020 月餅 25

月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量 總售價 以及市場的最大需求量,請你計算可以獲得的最大收益是多少。注意 銷售時允許取出一部分庫存。樣例給出的情形是這樣的 假如我們有3種月餅,其庫存量分別為18 15 10萬噸,總售價分別為75 72 ...

PAT (乙級)1020 月餅 25

月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量 總售價 以及市場的最大需求量,請你計算可以獲得的最大收益是多少。注意 銷售時允許取出一部分庫存。樣例給出的情形是這樣的 假如我們有3種月餅,其庫存量分別為18 15 10萬噸,總售價分別為75 72 ...

PAT 乙級 1020 月餅 25

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量 總售價 以及市場的最大需求量,請你計算可以獲得的最大收益是多少。注意 ...