L2-003 月餅-團體程序設計天梯賽GPLT

題目來源:團體程序設計天梯賽-練習集
題目地址:L2-003 月餅

problem

題目大意

題目給定月餅種類的數量和市場最大需求量,以及各個種類月餅的庫存量、總售價、,請你計算可以獲得的最大收益!

題目分析

這是一道考察貪心策略的簡單題目,首先求出各個種類月餅的單價(即億元/萬噸),然後按照單價將各個種類的月餅降序排序,優先把單價高的月餅賣出去,最後達到求得結果就是我們要的答案。

易錯點:

  • 題目中給的各個種類月餅的庫存量、總售價描述是“正數”,相應的變量都應該用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;
}


如果覺得本對你有所幫助,記得點個贊哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章