C++学习之路 | PTA乙级—— 1020 月饼 (25分)(精简)

1020 月饼 (25分)

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。
注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。
输入格式:

每个输入包含一个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N 表示月饼的种类数、以及不超过 500(以万吨为单位)的正整数 D 表示市场最大需求量。随后一行给出 N 个正数表示每种月饼的库存量(以万吨为单位);最后一行给出 N 个正数表示每种月饼的总售价(以亿元为单位)。数字间以空格分隔。
输出格式:

对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后 2 位。
输入样例:

3 20
18 15 10
75 72 45
输出样例:

94.50

一开始没什么思路,想到求单价来计算,但是具体步骤没想出,看了柳神的代码后恍然大悟。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct mooncake {float mount;//存储数量float price;//存储总售价float unit;//存储单价
};
bool cmp(struct mooncake a,struct mooncake b)
{return a.unit > b.unit;
}
int main()
{int n;float number_max;//存储最大需求量float result=0;//存储最大收益cin >> n>>number_max;struct mooncake tmp;//建结构体vector<mooncake>v(n);for (int i = 0; i < n; i++)cin >> v[i].mount;for (int i = 0; i < n; i++)cin >> v[i].price;for (int i = 0; i < v.size(); i++)v[i].unit = v[i].price / v[i].mount;//计算单价sort(v.begin(), v.end(), cmp);//按单价降序排序for (int i = 0; i < n; i++) {if (v[i].mount <= number_max) {result = result + v[i].price;//如果该月饼数量小于当前最大需求,直接加上该月饼的总价。}else {result = result + v[i].unit * number_max;//如果大于当前最大需求,则需要求部分价格即可,然后跳出循环。break;}number_max = number_max - v[i].mount;//当前总需求减去卖出的月饼量。}printf("%.2lf", result);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI战略投资全景图:11个行业200多家巨头最爱什么样的AI创业公司?

原作 Kyle Kling李杉 编译自 LinkedIn量子位 出品 | 公众号 QbitAI各行各业都在谈人工智能&#xff0c;各类企业都想运用这项技术来提升自己、捍卫行业地位。究竟哪些行业、哪些公司最积极&#xff1f;哪些AI细分方向最受重视&#xff1f;MDI Ventures美国投资总监Kyle Kling分…

关于调用Oracle存储过程时发生“BCD Overflow”错误的处理

笔者最近在使用TSQLStoredProc调用Oracle存储过程时发现&#xff0c;即使存储过程体为空时&#xff0c;都会发生 BCD Overflow 错误&#xff0c;该表部分定义如下&#xff1a;PLANE_ALL_PARAMETER表&#xff1a;字段名数据类型PLANE_MODEL_IDNUMBERNATURAL_FLY_WEIGHT FLOATNOL…

使用javafx百行代码搞定多边形面积计算(可下载)

输出多边形面积 一、使用JavaFX Scene Builder 2.0制作界面&#xff0c;因为比较懒&#xff0c;直接偷工减料&#x1f601;&#x1f601;&#x1f601; 界面部分非常简陋 1.引入库 //main.java 部分 public class main extends Application {Overridepublic void start(Stage…

Extract Interface(提炼接口)

两个类的接口有部分相同 重构&#xff1a;将相同的子集提炼到一个独立接口中

Google Analytics(分析)

前两次我给大家介绍过google的gmail服务&#xff08;google的Gmail服务 赠送邀请函 &#xff09;和网上论坛服务&#xff08;google 网上论坛 &#xff09;。其实google还有很的网络产品都是供大家免费使用的&#xff0c;而且都是一些很优秀的产品或者是工具。我除了使用介绍过…

设计模式1—创建型模式

模式在一定环境中解决某一问题的方案&#xff0c;包括三个基本元素--问题&#xff0c;解决方案和环境。大白话&#xff1a;在一定环境下&#xff0c;用固定套路解决问题。设计模式&#xff08;Design pattern&#xff09;是一套被反复使用、多数人知晓的、经过分类编目的、代码…

C++学习之路 | PTA乙级—— 1021 个位数统计 (15分)(精简)

1021 个位数统计 (15分) 给定一个 k 位整数 Nd ​k−1 ​​ 10 ​k−1 ​​ ⋯d ​1 ​​ 10 ​1 ​​ d ​0 ​​ (0≤d ​i ​​ ≤9, i0,⋯,k−1, d ​k−1 ​​ >0)&#xff0c;请编写程序统计每种不同的个位数字出现的次数。例如&#xff1a;给定 N100311&#xff0c;…

Collapse Hierarchy(折叠继承体系)

超类和子类之间无太大区别 重构&#xff1a;将它们合为一体

65% 的钱被头部玩家拿走,人工智能要进入下半场?

来源&#xff1a;IT桔子概要&#xff1a;2017年&#xff0c;自动驾驶、医疗影像、AI教育成为焦点&#xff1b;一多半AI风险投资被第一梯队选手收入囊中&#xff0c;并快速成长为独角兽。2017年&#xff0c;自动驾驶、医疗影像、AI教育成为焦点&#xff1b;一多半AI风险投资被第…

转:用ASP.NET创建网络相册

用ASP.NET创建网络相册 在现在的数码时代&#xff0c;我们会经常拍摄一些相片以供留念&#xff0c;而随着数码照片的增多&#xff0c;往往需要很好地管理这些照片&#xff0c;以便更好地查阅留念。现在网上有不少的电子相册&#xff0c;都能很好的实现这些功能&#xff0c;那我…

设计模式2—结构型模式

结构型模式用来处理类或者对象的组合&#xff0c;主要包含以下7种设计模式&#xff1a;1. 代理模式&#xff08;Proxy Pattern&#xff09;就是为其他对象提供一种代理以控制对这个对象的访问。2. 装饰者模式&#xff08;Decorator Pattern&#xff09;动态的给一个对象添加一些…

C++学习之路 | PTA乙级—— 1022 D进制的A+B (20分)(精简)

1022 D进制的AB (20分) 输入两个非负 10 进制整数 A 和 B (≤2 ​30 ​​ −1)&#xff0c;输出 AB 的 D (1<D≤10)进制数。 输入格式&#xff1a; 输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式&#xff1a; 输出 AB 的 D 进制数。 输入样例&#xff1a; 123 45…

Form Template Method(塑造模板函数)

有一些子类&#xff0c;其中相应的某些函数以相同顺序执行类似的操作&#xff0c;但各个操作的细节有不同 重构&#xff1a;将这些操作分别放进独立函数中&#xff0c;并保持它们都有相同的签名&#xff0c;然后将原函数上移至超类

自动驾驶第一案结果敲定,谷歌无人驾驶和Uber达成2.5亿美元和解协议

来源&#xff1a;36氪概要&#xff1a;Uber 与谷歌无人驾驶部门 Waymo 的法律纠纷以庭外和解的方式告一段落。Uber 与谷歌无人驾驶部门 Waymo 的法律纠纷以庭外和解的方式告一段落。上周五 &#xff0c;Uber 表示&#xff0c;公司已经和 AlphabetInc 旗下的无人驾驶汽车公司 Wa…

FastReport v3.2.5在BDS2006中的安装方法

FastReport v3.2.5在BDS2006中的安装方法 // Windows XP Pro SP2 Delphi2006 Update 1 TeeChart pro v7.06 // 安装前请删除老版本的FastReport控件。 1. "Tools|Options|Environmet Options|Delphi Options|Library - Win32"中的"Directories"标签面…

C++学习之路 | PTA乙级—— 1023 组个最小数 (20分)(精简)

1023 组个最小数 (20分) 给定数字 0-9 各若干个。你可以以任意顺序排列这些数字&#xff0c;但必须全部使用。目标是使得最后得到的数尽可能小&#xff08;注意 0 不能做首位&#xff09;。例如&#xff1a;给定两个 0&#xff0c;两个 1&#xff0c;三个 5&#xff0c;一个 8…

物联网将在2018年实现大规模发展:以下是IBM的4大预测

来源&#xff1a;forbes物联网智库 编译概要&#xff1a;随着连接设备的数量达到110亿台&#xff08;不包括电脑和手机的连接量&#xff09;&#xff0c;很显然&#xff0c;在2018年&#xff0c;物联网将继续成为热点话题。随着连接设备的数量达到110亿台&#xff08;不包括电脑…

佛祖说出的爱情箴言

一、石头问&#xff1a;我究竟该找个我爱的人做我的妻子呢&#xff1f;还是该找个爱我的人做我的妻子呢&#xff1f;佛笑了笑&#xff1a;这个问题的答案其实就在你自己的心底。这些年来&#xff0c;能让你爱得死去活来&#xff0c;能让你感觉得到生活充实&#xff0c;能让你挺…

Replace Inheritance with Delegation(以委托取代继承)

某个子类只使用超类接口中的一部分&#xff0c;或是根本不需要继承而来的数据 重构&#xff1a;在子类中新建一个字段用来保存超类&#xff0c;调整子类函数&#xff0c;令它改而委托超类&#xff0c;然后去掉两者的继承关系

设计模式3—行为型模式

行为型模式用来对类或对象怎样交互和怎样分配职责进行描述&#xff0c;主要包含以下11种设计模式&#xff1a; 模板方法模式&#xff08;Template Method Pattern&#xff09; 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 命令模式&#xff08;Command…