本文主要是介绍【PAT】月饼(贪心),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接
思路:
因为是要获得最大收益首先要算出每种月饼单价,然后从选择最高单价开始售卖。因此我们要先根据库存量和总售价来计算出月饼的单价,之后再进行从高到低排序。
AC:
#include<iostream>
#include<algorithm>
using namespace std;
struct mooncake{double store;//库存量double sell;//总售价double price;//单价
}cake[1100];
bool cmp(mooncake a,mooncake b) { return a.price>b.price; }
int main()
{int n,d,i;cin >> n >> d;for(i=0;i<n;i++)cin >> cake[i].store;for(i=0;i<n;i++){cin >> cake[i].sell;cake[i].price=cake[i].sell/cake[i].store;}sort(cake,cake+n,cmp);double ans;for(int i=0;i<n;i++){if(cake[i].store<=d){d-=cake[i].store;ans+=cake[i].sell;}else{ans+=d*cake[i].price;break;}} printf("%.2lf\n",ans); return 0;
}
这篇关于【PAT】月饼(贪心)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!