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 分)(贪心水中水)
PAT甲题题解-1070. Mooncake (25)-排序,大水题