1020 月饼 (25 分) 代码题

1020 月饼 (25 分)

思路

总体思路还是比较清晰的,按照均值排序。然后有限满足均值高的。

// 1020 月饼 (25 分).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
struct MoonCake {
    double num, totalp, singlep;//3个double型的库存量,总价,单价 
}cakes[1000];
bool cmp(MoonCake a, MoonCake b)
{
    return a.singlep > b.singlep;//设计函数以降序 
}
int main()
{
    int n, maxreq;//定义种类,最大需求量 
    cin >> n >> maxreq;
    for (int i = 0; i < n; i++)
        cin >> cakes[i].num;
    for (int i = 0; i < n; i++)
        cin >> cakes[i].totalp;
    for (int i = 0; i < n; i++)
        cakes[i].singlep = cakes[i].totalp / cakes[i].num;
    sort(cakes, cakes + n, cmp);
    double maxbenf = 0;
    for (int i = 0; i < n; i++)
    {
        if (maxreq <= cakes[i].num)//如果最大需求量不大于当前库存 
        {
            maxbenf += cakes[i].singlep * maxreq;//最大收益即当前单价乘以最大需求量 
            break;//注意及时退出 
        }
        else
        {
            maxbenf += cakes[i].totalp;//否则最大收益累加当前总价 
            maxreq -= cakes[i].num;//需求量减去当前库存 
        }
    }
    cout << setiosflags(ios::fixed) << setprecision(2) << maxbenf;
    return 0;
}

原文发布于微信公众号 - 卡尼慕(gh_40138f7dc7d3)

原文发表时间:2019-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券