L2-003 月饼-团体程序设计天梯赛GPLT
生活随笔
收集整理的這篇文章主要介紹了
L2-003 月饼-团体程序设计天梯赛GPLT
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目來源:團(tuán)體程序設(shè)計(jì)天梯賽-練習(xí)集
題目地址:L2-003 月餅
題目大意
題目給定月餅種類的數(shù)量和市場(chǎng)最大需求量,以及各個(gè)種類月餅的庫(kù)存量、總售價(jià)、,請(qǐng)你計(jì)算可以獲得的最大收益!
題目分析
這是一道考察貪心策略的簡(jiǎn)單題目,首先求出各個(gè)種類月餅的單價(jià)(即億元/萬噸),然后按照單價(jià)將各個(gè)種類的月餅降序排序,優(yōu)先把單價(jià)高的月餅賣出去,最后達(dá)到求得結(jié)果就是我們要的答案。
易錯(cuò)點(diǎn):
- 題目中給的各個(gè)種類月餅的庫(kù)存量、總售價(jià)描述是“正數(shù)”,相應(yīng)的變量都應(yīng)該用double類型存儲(chǔ)。
代碼如下
#include <bits/stdc++.h>using namespace std; const int maxn = 1005;/*** 因?yàn)轭}目描述寫這個(gè)屬性是正數(shù)* 故num, price都要用double類型*/ struct Food {double num, price;double pri; } f[maxn];//按單價(jià)降序排序 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; }如果覺得本對(duì)你有所幫助,記得點(diǎn)個(gè)贊哦~
總結(jié)
以上是生活随笔為你收集整理的L2-003 月饼-团体程序设计天梯赛GPLT的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: L2-002 链表去重-团体程序设计天梯
- 下一篇: C++ STL容器总结之vector(超