PAT甲级-贪心类型-1070 Mooncake解题思路

1070 Mooncake (25 分)

在这里插入图片描述

思路

秒杀,不解释

代码

#include<bits/stdc++.h>
using namespace std;

struct stu{
    
    
    double price;
    double num;
    double one;
}stud[1005];

bool cmp(stu a, stu b)
{
    
    
    return a.one>b.one;
}
int main()
{
    
    
    int N,M;
    scanf("%d%d",&N,&M);
    
    for(int i =0;i<N;i++)
        scanf("%lf",&stud[i].num);
    for(int i =0;i<N;i++)
    {
    
    
        scanf("%lf",&stud[i].price);
        stud[i].one= stud[i].price/stud[i].num;
    }

    sort(stud,stud+N,cmp);

    double sum = 0;
    for(int i =0;i<N;i++)
    {
    
    
        //cout<<stud[i].num<<endl;
        if(M>stud[i].num)
        {
    
       
            sum+=stud[i].price;
            M-=stud[i].num;
        }
        else
        {
    
    
            sum+=(M/stud[i].num)*stud[i].price;
            break;
        }
    }
    printf("%.2f",sum);

    
}

猜你喜欢

转载自blog.csdn.net/weixin_43999137/article/details/114444854
今日推荐