本文主要是介绍pat乙-1020月饼,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
贪心:既然有存货量一定,利润要最高;
这个贪心就在于我看“单价”最高,这个单价也是要把存货量算进去的,所以按“单价”排序,再遍历,优选选择“单价”最高的,不够的再补,用小数补,够得就全部把存货量全卖了哈哈哈哈
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;struct mooncake{double store,sell,price;}cake[1010];bool cmp(mooncake a,mooncake b){return a.price>b.price;
}
int main()
{int n;double demand;cin>>n>>demand;for(int i=0;i<n;i++){cin>>cake[i].store;}for(int i=0;i<n;i++){cin>>cake[i].sell;cake[i].price=cake[i].sell/cake[i].store;}sort(cake,cake+n,cmp);double earnings=0;//贪心for(int i=0;i<n;i++){if(cake[i].store<demand){earnings+=cake[i].sell;demand-=cake[i].store;}else{earnings+=cake[i].price*demand;break;}}printf("%.2f",earnings);return 0;
}
这篇关于pat乙-1020月饼的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!