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的更多相关文章

  1. 月饼问题PAT B1020(贪心算法)

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

  2. PAT B1020 月饼(25)

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

  3. PAT B1020 月饼

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

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

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

  5. PAT题目AC汇总(待补全)

    题目AC汇总 甲级AC PAT A1001 A+B Format (20 分) PAT A1002 A+B for Polynomials(25) PAT A1005 Spell It Right ( ...

  6. 《转载》PAT 习题

    博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...

  7. PAT Judge

    原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/677 题目如下: The ranklist of PAT is generated fr ...

  8. PAT/字符串处理习题集(二)

    B1024. 科学计数法 (20) Description: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+ ...

  9. PAT 1041. 考试座位号(15)

    每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...

随机推荐

  1. Fiddler抓取HTTPS请求配置

    由于fiddler安装后默认只能抓取http请求,如果需要抓取https请求需要进行配置.配置方式:Tools--->Options--->HTTPS,勾选CaptureHTTPS CON ...

  2. Redhat乱码

    1 首先可以使用echo $LANG命令输出当前字符集. 2 我们需要把字符集改为zh_CN.UTF-8,在/etc/sysconfig/i18n文件中进行修改 3 使用source  /etc/sy ...

  3. 防cc攻击策略

    黑客攻击你的网站,会采取各种各样的手段,其中为了降低你网站的访问速度,甚至让你的服务器瘫痪,它会不断的刷新你的网站,或者模拟很多用户同一时间大量的访问你的网站, 这就是所谓的CC攻击,这就需要我们在程 ...

  4. python小游戏

    import time,random # 需要的数据和变量放在开头player_list = ['[狂血战士]','[森林箭手]','[光明骑士]','[独行剑客]','[格斗大师]','[枪弹专家] ...

  5. AI外包 人工智能外包 长年承接人工智能项目 北京动点软件

    人工智能artificial intelligence,AI是科技研究中最热门的方向之一.像 IBM.谷歌.微软.Facebook  和亚马逊等公司都在研发上投入大量的资金.或者收购那些在机器学习.神 ...

  6. Hadoop之运行环境搭建

    一.虚拟机环境准备 1.克隆虚拟机 2.修改克隆虚拟机静态IP 3.修改主机名 4.关闭防火墙 5.创建hadoop用户 6.配置hadoop用户具有root权限 7.在/opt 目录下创建文件夹 1 ...

  7. day24

    ## 复习 1.类对象属性的查找顺序: 先找自身再找类1)类的名称空间:直接写在类中2) 对象的名称空间:写在__init__方法中,通过self.属性形成名称空间中的名字3) 类的方法:在类中用@c ...

  8. Notepad++对比文件

    Notepad++怎么对比文件,安装文件对比插件Compare pluginhttps://blog.csdn.net/qq_31772441/article/details/80306265 可以只 ...

  9. 【sock_stream和sock_dgram】、 【AF_INET和AF_UNIX】

    [sock_stream和sock_dgram] 1.sock_stream 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送. 2.sock_dgram 是无 ...

  10. sysbench工具安装使用

    一.sysbench简介 Sysbench是一款开源的.跨平台的.模块化的.多线程的性能测试工具,通过高负载地运行在数据库上,可以执行CPU.内存.线程.IO.数据库等方面的性能测试.用于评估操作系统 ...