L2-003 月饼-团体程序设计天梯赛GPLT
生活随笔
收集整理的這篇文章主要介紹了
L2-003 月饼-团体程序设计天梯赛GPLT
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目來源:團體程序設計天梯賽-練習集
題目地址:L2-003 月餅
題目大意
題目給定月餅種類的數量和市場最大需求量,以及各個種類月餅的庫存量、總售價、,請你計算可以獲得的最大收益!
題目分析
這是一道考察貪心策略的簡單題目,首先求出各個種類月餅的單價(即億元/萬噸),然后按照單價將各個種類的月餅降序排序,優先把單價高的月餅賣出去,最后達到求得結果就是我們要的答案。
易錯點:
- 題目中給的各個種類月餅的庫存量、總售價描述是“正數”,相應的變量都應該用double類型存儲。
代碼如下
#include <bits/stdc++.h>using namespace std; const int maxn = 1005;/*** 因為題目描述寫這個屬性是正數* 故num, price都要用double類型*/ struct Food {double num, price;double pri; } f[maxn];//按單價降序排序 bool cmp (const Food &A, const Food &B) {return A.pri > B.pri; }int main() {int n, need;scanf("%d %d", &n, &need);for (int i = 0; i < n; i++) scanf("%lf", &f[i].num);for (int i = 0; i < n; i++) {scanf("%lf", &f[i].price);f[i].pri = f[i].price / f[i].num;}sort(f, f + n, cmp);double ans = 0.0;for (int i = 0; i < n; i++) {if (f[i].num < need) {ans += f[i].price;need -= f[i].num;} else {ans += need * f[i].pri;break;}}printf("%.2f\n", ans);return 0; }如果覺得本對你有所幫助,記得點個贊哦~
總結
以上是生活随笔為你收集整理的L2-003 月饼-团体程序设计天梯赛GPLT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: L2-002 链表去重-团体程序设计天梯
- 下一篇: C++ STL容器总结之vector(超