题目描述

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。

注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 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

全部AC

#include <cstdio>
#include <algorithm>
#include <cstring> using namespace std; struct MoonCake {
double cost; //总售价
double save; //库存量
double per_cost; //万吨单价
}mooncake[1100]; void calc_per_cost(MoonCake& A){
A.per_cost = A.cost / A.save;
}
bool cmp(MoonCake A, MoonCake B) {
return A.per_cost > B.per_cost;
}
int main() {
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
int n; //月饼的种类数
double m; //市场最大需求数
scanf("%d %lf", &n, &m);
//输入各月饼的库存
// printf("%d %.2lf\n", n, m);
for(int i = 0; i < n; i++) {
scanf("%lf", &mooncake[i].save);
}
//输入各月饼的总售价并计算万吨单价
for(int i = 0; i < n; i++) {
scanf("%lf", &mooncake[i].cost);
calc_per_cost(mooncake[i]);
}
// for(int i = 0; i < n; i++){
// printf("cost:%lf save:%lf per_cost:%.2lf\n", mooncake[i].cost, mooncake[i].save, mooncake[i].per_cost);
// }
//按照万吨单价从大到小排序
sort(mooncake, mooncake+n, cmp);
// printf("排序后\n");
// for(int i = 0; i < n; i++){
// printf("cost:%lf save:%lf per_cost:%.2lf\n", mooncake[i].cost, mooncake[i].save, mooncake[i].per_cost);
// }
//计算最大收益
double shouyi = 0;//最大收益
if(m < mooncake[0].save) { //最大需求量小于单价最高月饼的库存
shouyi = m * mooncake[0].per_cost;
} else if(m > mooncake[0].save){//最大需求量大于单价最高月饼的库存
int temp = m;
int a = 0;//结构体数组下标
//因为单个库存小于最大需求量,先计算总的在计算剩余小于库存量的。
while(temp > 0 && temp > mooncake[a].save && a < n) { //a小于n是全部月饼都卖出去了
shouyi += mooncake[a].cost;
temp -= mooncake[a].save;
a++;
}
//剩余小于库存量的
shouyi += temp * mooncake[a].per_cost;
}
printf("%.2lf", shouyi);
return 0;
}

PAT B1020 月饼(25)的更多相关文章

  1. PAT 1020 月饼 (25)(精简版代码+思路+推荐测试用例)

    1020 月饼 (25)(25 分)提问 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是 ...

  2. PAT 1020. 月饼 (25)

    月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部分库存.样 ...

  3. 【C/C++】贪心/算法笔记4.4/PAT B1020月饼/PAT B1023组内最小数

    简单贪心 所谓简单贪心,就是每步都取最优的一种方法. 月饼问题:有N种月饼,市场最大需求量D,给出每种月饼的库存量和总售价. 思路:从贵的往便宜的卖.如果当前的已经卖完了,就卖下一个.如果剩余D不足, ...

  4. B1020 月饼(25分)

    #include<cstdio> #include<algorithm> #include<iostream> using namespace std; struc ...

  5. PAT B1020 月饼

    #include<iostream> #include<algorithm> using namespace std; struct mooncake { double sto ...

  6. B1020 月饼(25 分)

    B1020 月饼(25 分) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意 ...

  7. PAT乙级 1020. 月饼 (25)(只得到23分)

    1020. 月饼 (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 月饼是中国人在中秋佳节时吃的一种传统食 ...

  8. 牛客网 PAT 算法历年真题 1010 : 月饼 (25)

    月饼 (25) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地 ...

  9. PAT 乙级 1020 月饼 (25) C++版

    1020. 月饼 (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 月饼是中国人在中秋佳节时吃的一种传统食 ...

随机推荐

  1. 使用Camtasia 9 录制屏幕软件

    Camtasia 9 录制屏幕软件,并且有丰富的专业剪辑功能.

  2. 如何利用新浪官方的短网址API接口实现T.cn短链接的压缩生成

    短网址的实现原理就是有一个数据表会配置文件将短网址和实际网址进行对应,当请求某个短网址时,程序跳转到对应的实际网址上去,从而实现网址的访问.目前国内最稳定最好用的是新浪T.cn短链接. 之前新浪提供了 ...

  3. bash脚本中使用选项 getopts

    原文链接 : http://note.youdao.com/noteshare?id=0cf08484c7308c763726e63e9a638ff5&sub=EF6A110E2F3345E6 ...

  4. 修改checkbox样式-1

    说明 使用伪类来对复选框进行样式修改.以下以最简单的一个样式修改为实例进行说明. 步骤介绍: 将一个label与复选框进行绑定,将两者放在同一个div下 调整 label的外部样式使其作为复选框的外形 ...

  5. Linux安装elasticsearch5全过程(踩坑实录)

    Linux版本Centos elasticsearch版本:5.5 1.下载elasticsearch https://artifacts.elastic.co/downloads/elasticse ...

  6. Go http包执行流程

    Go 语言实现的 Web 服务工作方式与其他形式下的 Web 工作方式并没有什么不同,具体流程如下: -- http包执行流程 Request:来自用户的请求信息,包括 post.get.Cookie ...

  7. BUUCTF平台-web-边刷边记录-2

    1.one line tool <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_ ...

  8. phpinfo中敏感信息记录

    比赛中或者渗透中如果遇到phpinfo,从里面发现的一些线索能够对后续的渗透和解题帮助很大,这里记录总结一下目前网上比较常用的的. 下图来源于:https://seaii-blog.com/index ...

  9. JS广度优先查找无向无权图两点间最短路径

    广度优先查找无向无权图两点间最短路径,可以将图看成是以起点为根节点的树状图,每一层是上一层的子节点,一层一层的查找,直到找到目标节点为止. 起点为0度,与之相邻的节点为1度,以此类推. // 广度优先 ...

  10. PHP环境搭建之单独安装

    还在使用PHP集成环境吗?教你自定义搭建配置PHP开发环境,按照需求进行安装,安装的版本可以自己选择,灵活性更大. 目录:1. 安装Apache2. 安装PHP3. 安装MySQL4. 安装Compo ...