PAT B1020
PAT B1020
解决思路 :贪心法,每次选取单价最高的月饼。
先上一个自己错误的解法
#include <cstdio>
#include <algorithm>
using namespace std;
double num[1010];
double price[1005];
double ans = 0;
int main() {
int n, d;
scanf("%d%d", &n, &d);
for (int i = 0; i < n; i++) {
scanf("%lf", &num[i]);
}
for (int i = 0; i < n; i++) {
scanf("%lf", &price[i]);
price[i] = price[i] / num[i];
}
sort(price, price + n);
for (int i = n - 1; i >= 0; i--) {
while (num[i] > 0 && d > 0) {
ans += price[i];
num[i]--;
d--;
}
}
printf("%.2f", ans);
return 0;
}
然后是题解
#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%lf", &n, &D);
for (int i = 0; i < n; i++) {
scanf("%lf", &cake[i].store);
}
for (int i = 0; i < n; i++) {
scanf("%lf", &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;
break;
}
}
printf("%.2f", ans);
return 0;
}
PAT B1020的更多相关文章
- 月饼问题PAT B1020(贪心算法)
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部分库存.样 ...
- PAT B1020 月饼(25)
题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部 ...
- PAT B1020 月饼
#include<iostream> #include<algorithm> using namespace std; struct mooncake { double sto ...
- 【C/C++】贪心/算法笔记4.4/PAT B1020月饼/PAT B1023组内最小数
简单贪心 所谓简单贪心,就是每步都取最优的一种方法. 月饼问题:有N种月饼,市场最大需求量D,给出每种月饼的库存量和总售价. 思路:从贵的往便宜的卖.如果当前的已经卖完了,就卖下一个.如果剩余D不足, ...
- PAT题目AC汇总(待补全)
题目AC汇总 甲级AC PAT A1001 A+B Format (20 分) PAT A1002 A+B for Polynomials(25) PAT A1005 Spell It Right ( ...
- 《转载》PAT 习题
博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...
- PAT Judge
原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/677 题目如下: The ranklist of PAT is generated fr ...
- PAT/字符串处理习题集(二)
B1024. 科学计数法 (20) Description: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+ ...
- PAT 1041. 考试座位号(15)
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...
随机推荐
- java扫描文件。
前言:一步一步来实现迷你ioc框架,前面的容器工厂也是一个铺垫,这次的扫描文件也是一个铺垫…… 需求:扫描当前项目下所有文件.包括文件夹下文件夹里面的文件.利用递归进行扫描 ScanFileUtil类 ...
- 四、Python数据类型(二)
一.布尔(Boolean) 布尔类型的数据只有两个:(真)True和(假)False.多用于条件语句或者是作为函数返回值. 二.字典(dictionary) 1.认识字典 将数据组织成键值对(key- ...
- C# 加载DotNetBar组件
C#作为前端的开发软件,使用的人很多,但是原生的C#界面较为简陋,已经不能满足公司级的开发工作了,今天这篇博客的主要内容是讲一下怎么在C#端使用一个可以提升界面美感的第三方控件,DotNetBar 首 ...
- [原][飞行仿真]helios与dcs world安装,详尽教程
可以参考的博客: http://www.insky.cn/bbs/forum.php?mod=viewthread&tid=58175 http://www.insky.cn/bbs/foru ...
- Eclipse下运行maven项目失败且Tomcat服务器也启动不了
今天遇到一个神奇的问题,在eclipse中创建一个maven项目后,Run on server 时说服务器启动失败.我以为是Eclipse配置tomcat的问题.找了一大堆没找到想要的答案!!! 我还 ...
- vue history模式
注意: 1.前端:config.js路径问题 2.后台:配置nginx
- java中循环遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...
- Oracle中用户的创建和权限设置
权限: CREATE SESSION --允许用户登录数据库权限 CREATE TABLE --允许用户创建表权限 UNLIMITED TABLESPACE --允许用户在其他表空间随意建表 角色: ...
- 在Windows Server 2012下安装 php memcache模块
一.环境描述 操作系统:Windows Server 2012 R2 Datacenter Web服务提供软件:Microsoft IIS 8.5.9600.16384 IIS调用PHP方法:增加处理 ...
- C#: int 与 byte[] 互转
public static int ToInt32(params byte[] v) { ; var len = v.Length; ) { len = ; } ; i < len; i++) ...