zoukankan      html  css  js  c++  java
  • PAT Basic 1020 ⽉饼 (25) [贪⼼算法]

    题目

    ⽉饼是中国⼈在中秋佳节时吃的⼀种传统⻝品,不同地区有许多不同⻛味的⽉饼。现给定所有种类⽉饼的库存量、总售价、以及市场的最⼤需求量,请你计算可以获得的最⼤收益是多少。
    注意:销售时允许取出⼀部分库存。样例给出的情形是这样的:假如我们有3种⽉饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最⼤需求量只有20万吨,那么我们最⼤收益策略应该是卖出全部15万吨第2种⽉饼、以及5万吨第3种⽉饼,获得 72 + 45/2 = 94.5(亿元)。
    输⼊格式:
    每个输⼊包含1个测试⽤例。每个测试⽤例先给出⼀个不超过1000的正整数N表示⽉饼的种类数、以及不超过500(以万吨为单位)的正整数D表示市场最⼤需求量。随后⼀⾏给出N个正数表示每种⽉饼的库存量(以万吨为单位);最后⼀⾏给出N个正数表示每种⽉饼的总售价(以亿元为单位)。数字间以空格分隔。
    输出格式:
    对每组测试⽤例,在⼀⾏中输出最⼤收益,以亿元为单位并精确到⼩数点后2位。
    输⼊样例:
    3 20
    18 15 10
    75 72 45
    输出样例:
    94.50

    题目分析

    已知不同种类月饼的库存,总价格,市场需求量,求最大利润

    解题思路

    1. 贪心思想:依次获取单位价格最贵的月饼
    2. 结构体moon,存储月饼的库存,总价格,单位价格(输入总价格时预处理,减少一次遍历)
    3. 按照单位价格降序排序,依次获取,直到达到市场需求量

    Code

    Code 01

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    struct moon {
    	double w; // total weight (in thousand tons)
    	double p; // total price (in billion yuan)
    	double pp; // price per thousand ton
    };
    bool cmp(moon &m1,moon &m2) {
    	return m1.pp>m2.pp;
    }
    int main(int argc, char * argv[]) {
    	// 1 接收数据 
    	int N,D;
    	scanf("%d %d",&N,&D);
    	vector<moon> vms(N); //存放月饼数据 
    	for(int i=0; i<N; i++) scanf("%lf", &vms[i].w);
    	for(int i=0; i<N; i++) {
    		scanf("%lf", &vms[i].p);
    		vms[i].pp = vms[i].p/vms[i].w; //计算每重量单位的价格 
    	}
    	// 2 按照单位价格高-低排序 
    	sort(vms.begin(),vms.end(),cmp);
    	// 3 求最大利润 
    	double tp = 0.0;
    	for(int i=0; i<N&&D>0; i++) {
    		if(vms[i].w<D) {//如果当前月饼种类的重量小于需求剩余数,全部销售 
    			D=D-vms[i].w;
    			tp+=vms[i].p;
    		} else { //如果当前月饼种类的重量大于需求剩余数,按照单位价计算剩余需求重量 
    			tp+=D*vms[i].pp;
    			D=0;
    		}
    	}
    	printf("%.2f", tp);
    }
    
  • 相关阅读:
    zoj 2316 Matrix Multiplication 解题报告
    BestCoder7 1001 Little Pony and Permutation(hdu 4985) 解题报告
    codeforces 463C. Gargari and Bishops 解题报告
    codeforces 463B Caisa and Pylons 解题报告
    codeforces 463A Caisa and Sugar 解题报告
    CSS3新的字体尺寸单位rem
    CSS中文字体对照表
    引用外部CSS的link和import方式的分析与比较
    CSS样式表引用方式
    10个CSS简写/优化技巧
  • 原文地址:https://www.cnblogs.com/houzm/p/12245442.html
Copyright © 2011-2022 走看看