• 【PAT甲级】1070 Mooncake (25 分)(贪心水中水)


    题意:

    输入两个正整数N和M(存疑M是否为整数,N<=1000,M<=500)表示月饼的种数和市场对于月饼的最大需求,接着输入N个正整数表示某种月饼的库存,再输入N个正数表示某种月饼库存全部出手的利润。输出最大利润。

    trick:

    测试点2可能包含M不为整数的数据。(尽管题面说明M是正整数,可是根据从前PAT甲级题目的经验,有可能不是整数。。。。。)

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 double a[1007];
     5 double b[1007];
     6 pair<double,int>p[1007];
     7 int main(){
     8     int n;
     9     double m;
    10     scanf("%d%lf",&n,&m);
    11     for(int i=1;i<=n;++i)
    12         scanf("%lf",&a[i]);
    13     for(int i=1;i<=n;++i)
    14         scanf("%lf",&b[i]);
    15     for(int i=1;i<=n;++i)
    16         p[i].first=b[i]/a[i],p[i].second=i;
    17     sort(p+1,p+1+n);
    18     double sum=0;
    19     double ans=0;
    20     for(int i=n;i;--i)
    21         if(sum+a[p[i].second]<=m){
    22             sum+=a[p[i].second];
    23             ans+=b[p[i].second];
    24         }
    25         else{
    26             ans+=(m-sum)*p[i].first;
    27             break;
    28         }
    29     printf("%.2f",ans);
    30     return 0;
    31 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    table 表格的增删和修改
    js实现单双行文本溢出添加省略号
    C++
    PAT乙级 1029 旧键盘 (C++ python3)
    图论
    图论
    图论
    springcloud(二):注册中心Eureka
    apollo配置中心初探
    Apollo 配置详细步骤(Windows环境)
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11788078.html
Copyright © 2020-2023  润新知