日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

pat 乙级 1020 月饼(C++实现)

發布時間:2023/12/2 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pat 乙级 1020 月饼(C++实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量、總售價、以及市場的最大需求量,請你計算可以獲得的最大收益是多少。
注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有 3 種月餅,其庫存量分別為 18、15、10 萬噸,總售價分別為 75、72、45 億元。如果市場的最大需求量只有 20 萬噸,那么我們最大收益策略應該是賣出全部 15 萬噸第 2 種月餅、以及 5 萬噸第 3 種月餅,獲得 72 + 45/2 = 94.5(億元)。

輸入格式:

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

輸出格式:

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

輸入樣例:

3 20 18 15 10 75 72 45

輸出樣例:

94.50

分析

  • 一個物體多個屬性的,適合封裝為結構體。沒有明確整型,就要使用float或者double,防止數據計算過程中被截斷。
  • 想要收益最大,就要賣最貴的。算出每種月餅單價,并從高到低排序。
  • 設變量profit表示收益,如果庫存≤D,profit=當前種類月餅的總售價,;如果庫存>D,profit=當前種類月餅單價*D;
  • 循環遍歷月餅種類,注意循環終止條件:i=N而不是D=0,因為最大需求D可能超過所有月餅的總庫存!
  • 第3步,第一種情況D要改變,第二種情況退出循環。

分析

#include <iostream> #include<algorithm> #include<iomanip> using namespace std; struct Moon_cake {double store,total,price; }; bool comp(Moon_cake m,Moon_cake n){return m.price>n.price;} int main() {int i,N,D;double profit=0.0;cin>>N>>D;Moon_cake m[N];for(i=0;i<N;i++){cin>>m[i].store;}for(i=0;i<N;i++){cin>>m[i].total;m[i].price=m[i].total/m[i].store;}sort(m,m+N,comp);i=0;while(i<N){if(m[i].store<=D){profit=profit+m[i].total;D=D-m[i].store;i++;}else{profit=profit+m[i].price*D;break;}}cout<<fixed<<setprecision(2)<<profit;return 0; }

這是pat乙級的最后一道題,有些小坑,但總體難度不大,所以做題的時候。如果前面遇到了阻礙,不妨去后面看看,說不定有驚喜呢!

如果有任何問題或者更好的解法,一定一定告訴我哦。

更多題解
pat 乙級 題解匯總(持續更新)(C++)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的pat 乙级 1020 月饼(C++实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。