GPLT L2-003. 月饼【贪心】

通过分析月饼的单价(重量与总价的比例),对月饼种类进行升序排序。采取贪心策略,优先考虑单价高的月饼,在限定的重量范围内(D)尽可能多的销售,若重量不足则按单价乘以D出售剩余月饼,从而实现收益最大化。具体实现涉及排序和动态调整的算法操作。
摘要由CSDN通过智能技术生成

题目:月饼

题意:给出n种月饼的重量和总价,问怎么卖收益最大!

思路:按每种月饼的单价(重量/总价)递增排序,然后依次求在D范围的月饼都卖,最后不足当前月饼总量时按单价*D卖出所有的D即为最大收益!

代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int maxn = 1005;
struct whole{
    double w,v;
    double pro;
}a[maxn];
bool cmp(whole x,whole y){
    return x.pro > y.pro;
}
int main()
{
    int n,d;
    while(~scanf("%d%d",&n,&d)){
        for(int i=0;i<n;i++) scanf("%lf",&a[i].w);
        for(int i=0;i<n;i++) {scanf("%lf",&a[i].v);a[i].pro = a[i].v/a[i].w;}
        sort(a,a+n,cmp);
        double sum = 0;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值