1070. Mooncake (25)
来源:互联网 发布:php环境变量 编辑:程序博客网 时间:2024/05/15 01:36
1.卡在测试点2比较久,结果发现amount也需要使用double才能通过,使用long long或者int都不行
2.贪心算法,每次取单位价格最高的mooncake
存储结构:
struct mooncakeNode{double amount;//需要使用double,才能通过测试点2double price;double unitPrice;mooncakeNode() :amount(0), price(0), unitPrice(0){};};
AC代码:
//#include<string>//#include<stack>//#include<unordered_set>//#include <sstream>//#include "func.h"//#include <list>#include <iomanip>#include<unordered_map>#include<set>#include<queue>#include<map>#include<vector>#include <algorithm>#include<stdio.h>#include<iostream>#include<string>#include<memory.h>#include<limits.h>#include<stack>using namespace std;/*3 2000180 150 1007.5 7.2 4.53 20180 150 1007.5 7.2 4.50 20 3 0180 150 1007.5 7.2 4.53 1180 150 1007.5 7.2 4.5*/struct mooncakeNode{double amount;//需要使用double,才能通过测试点2double price;double unitPrice;mooncakeNode() :amount(0), price(0), unitPrice(0){};};bool cmp(const mooncakeNode&a, const mooncakeNode&b){if (a.amount == b.amount && a.price >= b.price) return true;elsereturn (double)a.price*b.amount > (double)b.price*a.amount;}int main(void){int n, marketNeed;cin >> n >> marketNeed;vector<mooncakeNode> mooncake(n);for (int i = 0; i < n; i++){cin >> mooncake[i].amount;}for (int i = 0; i < n; i++){//输入总价格和求出单位价格cin >> mooncake[i].price;if (mooncake[i].amount == 0){mooncake[i].price = 0;mooncake[i].unitPrice = 0;}elsemooncake[i].unitPrice = mooncake[i].price / mooncake[i].amount;}sort(mooncake.begin(), mooncake.end(), cmp);double profit=0;for (int i = 0; i < n && marketNeed!=0; i++){if (mooncake[i].amount == marketNeed){//如果刚好相等,则全部要了profit += mooncake[i].price;marketNeed -= mooncake[i].amount;}else if (mooncake[i].amount < marketNeed){//如果数量小于市场需要,则全部要了profit += mooncake[i].price;marketNeed -= mooncake[i].amount;}else{//如果数量大于市场需要,则取市场需要部分即可profit += mooncake[i].price*marketNeed/mooncake[i].amount;marketNeed = 0;}}printf("%.2lf", profit);//cout << setprecision(2) << profit << endl;return 0;}
0 0
- 【PAT】1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- PAT 1070. Mooncake (25)
- PAT 1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- PAT 1070. Mooncake (25)
- pat 1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- PAT 1070. Mooncake (25)
- 1070. Mooncake (25)
- 1070. Mooncake (25)
- 关于cookie与网络安全的一些学习
- 基于p2p的sip电话系统
- 应用程序中的文字本地化
- 201601 DELPHI_强制类型转换As
- Android系统性能调优工具介绍
- 1070. Mooncake (25)
- WCF 自托管、无配置文件实现jsonp(跨域)的访问
- 调用接口实现定时功能
- Windows 下 MySQL 的配置创建mysql服务
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(3)
- HDU 2813 One fihgt one KM小变形
- winform Treeview设置右键点击的节点
- 项目中new一个Spring管理的bean
- Ⅰ.16 如何编辑和调试测试脚本