PAT乙级 1020 月饼
给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。
注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 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
结尾无空行
思路:求最优解,那么考的是考的是贪心算法,具体思路见柳婼题解就可以了,说的很详细。
两个点:
vector用sort函数之后cmp函数的写法,<>里面是什么,cmp函数的参数就是什么;
测试点2是题目中的“正数”,没说是“正整数”,所以有可能是小数。我的代码中,把所有的数据全用float表示才过了。
#include<iostream>
#include<iomanip>
#include<vector>
#include<set>
#include<list>
#include<deque>
#include<stack>
#include<unordered_map>
#include<cctype>
#include<map>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
class Mooncake
{
public:float store,single;int total;void setsingle() { single = (float)total / store; }
};
int cmp(class Mooncake v1, class Mooncake v2){ return v1.single > v2.single;}
int main()
{int n;float d,profit = 0.0;//float tstore = 0.0;cin >> n >> d;vector<Mooncake> v(n);for (int i = 0; i < n; i++){cin >> v[i].store;//tstore += v[i].store;}for (int i = 0; i < n; i++)cin >> v[i].total;for (int i = 0; i < n; i++)v[i].setsingle();sort(v.begin(), v.end(), cmp);//if (tstore < d)//{// for (int i = 0; i < n; i++)// {// profit += v[i].single * v[i].store;// }// printf("%.2f", profit);// return 0;//}if (d <= v[0].store){profit = d * v[0].single;printf("%.2f", profit);return 0;}else{int i = 0;while (d>=v[i].store && i<v.size()){profit += v[i].store * v[i].single;d -= (float)v[i].store;i++;}profit += v[i].single * d;printf("%.2f", profit);}return 0;
}
PAT乙级 1020 月饼相关推荐
- pat 乙级 1020 月饼(C++实现)
题目 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部分库 ...
- PAT 乙级 1020 月饼
1020 月饼 (25 point(s)) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益 ...
- [PAT乙级]1020 月饼
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部分库存.样 ...
- PAT乙级(1020 月饼)
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部分库存.样 ...
- C++学习之路 | PTA乙级—— 1020 月饼 (25分)(精简)
1020 月饼 (25分) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意: ...
- pat 乙级 1020 吃月饼(25)
总结一下 :(因为涉及到 小数计算 所以 类型 我选择了double) 第一次 提交 :测试点3 无论如何都过不去 . 最后 发现 忽略 两种情况 : 第一 : 所有 库存都满足 不了需求 比如 ...
- PAT乙级——1010.月饼
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味 ...
- C++学习之路 | PTA乙级—— 1020 月饼 (25分)(带注释)(精简)
1024 科学计数法 (20分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部 ...
- PAT乙级题目索引(题目+解析+AC代码)
题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 ...
最新文章
- Aix /etc/hosts.equiv 文件的用途及用法
- iptables利用ipt_recent做防刷限制
- python- is和id
- Nacos笔记-对Nacos初步认识
- 在后台中高效工作 – 后台任务
- git 如何忽略掉文件夹_#PY小贴士# 我的git仓库为什么每次提交都有很多改动?
- 201521123061 《Java程序设计》第六周学习总结
- 【XML】我所知道的XML
- SQL注入学习part07:(SQL注入语句总结)
- VB6的后期绑定和前期绑定
- linux的functions之killproc函数详解
- python报表自动化系列 - 获得指定目录下所有文件名
- 微信机器人 DIY 从 0 到 1
- ros使用RPLIDAR激光雷达
- 戴尔t310服务器装系统步骤,dell笔记本重装系统教程
- 如何搭建远程访问服务器?外网访问数据库实操教程
- python多项式求导_OO博客作业1:多项式求导作业总结
- Excel中序号自动填充
- 机器学习实战(三)朴素贝叶斯 (Peter Harrington著)
- php计算股票均线,均线怎么算?均线的计算方法详解