【算法笔记】Day08 | 4.4贪心

本节目录

4.4.1 简单贪心

A.定义

【算法笔记】Day08 | 4.4贪心

B.举例1–月饼

b1.题意

【算法笔记】Day08 | 4.4贪心

b2.思路

【算法笔记】Day08 | 4.4贪心

b3.注意点

【算法笔记】Day08 | 4.4贪心

b4.代码

//4_4_1
#include<cstdio>
#include<algorithm>
using namespace std;
struct mooncake {
    double store;//库存量
    double sell;//总售价
    double price;//单价
}cake[1010];
bool cmp(mooncake a,mooncake b){
    return a.price > b.price;
}
int main(){
    int n;
    double D;
    scanf("%d%1f",&n,&D);
    for(int i =0 ;i < n ;i++){
        scanf("%1f",&cake[i].store);
    }
    for(int i = 0;i < n ; i++ ){
        scanf("%1f",&cake[i].sell);
        cake[i].price = cake[i].sell / cake[i].store;//计算单价
    }
    sort(cake, cake + n,cmp);//按照单价从告到低排序
    double ans = 0;//收益
    for(int i = 0;i < n; i++){
        if(cake[i].store <= D){//如果需求量高于库存量
            D -=  cake[i].store;//第i种月饼全部卖出
            ans += cake[i].sell;
        }else{//如果月饼库存量高于需求量
            ans += cake[i].price * D;//值卖出剩余需求量的月饼
            break;
        }
    }
    printf("%.2f\n",ans);
    return 0;
}
上一篇:ROS在ubuntu18.04 Melodic版本无GUI情况下连接wifi


下一篇:VMware/ubuntu18.04/Ros/Melodic