PAT 甲级 A1070 (2019/02/19)

#include<cstdio>
#include<algorithm>
using namespace std;
struct Mooncake{
    double inventory;   //库存
    double total_value; //总价
    double unit_price;  //单价
}cake[1001];
bool cmp(Mooncake a, Mooncake b){
    return a.unit_price > b.unit_price;     //按照单价从高到低
}
int main(){
    int N, D;
    scanf("%d %d", &N, &D);
    for(int i = 0; i < N; i++){
        scanf("%lf", &cake[i].inventory);
    }
    for(int i = 0; i < N; i++){
        scanf("%lf", &cake[i].total_value);
        cake[i].unit_price = cake[i].total_value / cake[i].inventory;   //计算单价
    }
    sort(cake, cake + N, cmp);          //排序
    double total_cost = 0.0;
    for(int i = 0; i < N; i++){
        if(D > cake[i].inventory){      //需求大于库存
            D -= cake[i].inventory;     //第i种月饼全部卖出
            total_cost += cake[i].total_value;  //这些月饼的总价算进花费
        }else{      //需求小于库存
            total_cost += cake[i].unit_price * D;   //只卖出剩余需求量的月饼
            break;
        }
    }
    printf("%.2f", total_cost);
    return 0;
}

原文地址:https://www.cnblogs.com/zjsaipplp/p/10425236.html

时间: 2024-10-30 16:11:05

PAT 甲级 A1070 (2019/02/19)的相关文章

PAT 甲级 A1048 (2019/02/19)

#include <cstdio> #include <algorithm> using namespace std; const int N = 1005; int HashTable[N]; int main() { int n, m, a; scanf("%d %d", &n, &m); for(int i = 0; i < n; i++) { scanf("%d", &a); ++HashTable[a]

PAT 甲级 A1077 (2019/02/19)

#include<cstdio> #include<cstring> int n, minlen = 256, cnt = 0; char str[100][256]; int main(){ scanf("%d", &n); getchar(); //接收换行符 for(int i = 0; i < n; i++){ fgets(str[i],256,stdin); int len = strlen(str[i])-1; if(len <

PAT 甲级 A1033 (2019/02/19)

#include<cstdio> #include<algorithm> using namespace std; const int INF = 1000000000; //初始化最低油价 struct station{ double oil_price; //加油站油价 int distance; //加油站离出发点的距离 }sta[501]; bool cmp(station a, station b){ return a.distance < b.distance;

PAT 甲级 A1050 (2019/02/19)

#include<cstdio> #include<cstring> char str1[10010], str2[10010]; bool HashTable[128]; int main(){ fgets(str1,10010,stdin); fgets(str2,10010,stdin); int len1 = strlen(str1); int len2 = strlen(str2); for(int i = 0; i < len2; i++){ HashTable[

PAT甲级【2019年3月考题】——A1158 TelefraudDetection【25】

Telefraud(电信诈骗) remains a common and persistent problem in our society. In some cases, unsuspecting victims lose their entire life savings. To stop this crime, you are supposed to write a program to detect those suspects from a huge amount of phone c

吾尝终日而思矣——2019.02.19

1.享元模式(Flyweight Pattern) 享元模式意在减少新对象的产生,为一个对象建立一个享元工厂类,一般包含一个HashSet容量池.使用工厂类创建新对象,当对象未创建过,创建新对象并存入HashSet里,如果已存在就从HashSet取出,这样就能共享一些对象. PS:这个意译得反而让人摸不着头脑,Flyweight是轻量级的意思. 引用:https://www.cnblogs.com/adamjwh/p/9070107.html 2.装饰器模式 当我们需要对一个类添加功能时,我们可

PAT甲级1005 Spell It Right

题目:PAT甲级 1005 题解:水题.看到题目的第一时间就在想一位一位的mod,最后一加一转换就完事了.结果看到了N最大为10的100的次方,吓得我赶紧放弃这个想法... 发现碰到这种情况用字符串十分好用,这道题应该考察的就是这一点.大致思路就是把数字的每一位放到字符串中,然后通过ASCII码得到每一位的相加结果num,然后把num一位一位的放到stack中,使用stack是因为它先进先出的特性,最后输出就行了. 代码: 1 #include<cstdio> 2 #include<qu

【谜客帝国】第147届月思主擂谜会(2019.02.15)

 [谜客帝国]第147届月思主擂谜会(2019.02.15) 主持计分:东东 1.“人在中天日月间”(9笔字)春/月思 [注:面出陈孚<开平即事二首>,“势超大地山河上,-.”] 2. 玉漏声中烟气袅(3字法国奢侈品牌)YSL/月思 3. 双双相念初相爱(2字著名动漫人物)菜菜/月思 4.“数点燕云州外.雪霜威”(足球用语二,4+3)4132.451/月思 [注:面出余文<相见欢>,“登高望断龙旗,未曾归.几度中原北定,梦依稀.朔风乱,胡尘漫,掩斜晖.-.”] 5.“十载同心如一人

2017.02.19学习C#的第二天,今天我学到了什么?

2017.02.19,今天是学习C#的第二天,今天学习的是: 1.数据类型:(以下是现阶段编程中最经常用到的类型) (1)整型 (2)浮点型 (3)字符型 (4)布尔型 (5)字符串型 (6)日期时间型 2.变量/常量 3.类型转换 (1)显示转换 (2)隐式转换 4.转义字符 一,基本数据类型介绍 1.整形(主要差别在取值范围) (1)byte 取值范围(0--225),超出后系统报错. (2)short 取之范围:byte < shor t< int      快捷方式为Int16 (3)