1070 Mooncake (25 分)难度: 简单 / 知识点: 贪心

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1070 Mooncake (25 分)难度: 简单 / 知识点: 贪心相关的知识,希望对你有一定的参考价值。


https://pintia.cn/problem-sets/994805342720868352/problems/994805399578853376
没啥说的,PAT乙级的原题好像是。

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int n; double m;
struct node{double a,b;}s[N];
bool cmp(node a,node b) {return (a.b/a.a)>(b.b/b.a);}
int main(void)
{
    cin>>n>>m;
    for(int i=0;i<n;i++) cin>>s[i].a;
    for(int i=0;i<n;i++) cin>>s[i].b;
    sort(s,s+n,cmp);
    double ans=0;
    for(int i=0;i<n;i++)
    {
        if(m>=s[i].a)
        {
            ans+=s[i].b;
            m-=s[i].a;
        }
        else
        {
            ans+=m*s[i].b/s[i].a;
            break;
        }
    }
    printf("%.2lf",ans);
    return 0;
}

以上是关于1070 Mooncake (25 分)难度: 简单 / 知识点: 贪心的主要内容,如果未能解决你的问题,请参考以下文章

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

1070. Mooncake (25)

PAT甲题题解-1070. Mooncake (25)-排序,大水题

PAT (Advanced Level) 1070. Mooncake (25)

1070 Mooncake

1070 Mooncake 贪心