【1070】Mooncake (25 分)

举报
野猪佩奇996 发表于 2022/01/22 23:47:37 2022/01/22
【摘要】 #include<iostream>#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#include<algorithm> #include<map>#inclu...

  
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<math.h>
  5. #include<string.h>
  6. #include<algorithm>
  7. #include<map>
  8. #include<vector>
  9. #include<queue>
  10. using namespace std;
  11. //key:策略-总是选择单价最高的月饼售出,可以获得最大的利润
  12. struct mooncake{
  13. double store; //库存量
  14. double sell; //总售价
  15. double price; //单价
  16. }cake[1010];
  17. bool cmp(mooncake a,mooncake b){ //按单价从高到低排序
  18. return a.price > b.price;
  19. }
  20. int main(){
  21. int n;
  22. double D;
  23. scanf("%d%lf",&n,&D);
  24. for(int i=0;i<n;i++){
  25. scanf("%lf",&cake[i].store); //库存
  26. }
  27. for(int i=0;i<n;i++){
  28. scanf("%lf",&cake[i].sell); //每种月饼的总售价
  29. cake[i].price=cake[i].sell / cake[i].store; //计算单价
  30. }
  31. sort(cake,cake+n,cmp); //单价从高到低进行排序
  32. double ans=0; //收益
  33. for(int i=0;i<n;i++){
  34. if(cake[i].store <=D){ //如果需求量大于月饼库存量
  35. D -= cake[i].store; //第i种月饼全部卖出
  36. ans += cake[i].sell;
  37. }else{ //如果月饼库存量高于需求量
  38. ans += cake[i].price*D; //只卖出剩余需求量的月饼
  39. break;
  40. }
  41. }
  42. printf("%.2f\n",ans);
  43. system("pause");
  44. return 0;
  45. }

 

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/99696709

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。