PAT Basic Level 1020. 月饼(25)
来源:互联网 发布:人工智能 嵌入式 编辑:程序博客网 时间:2024/05/04 18:38
【来源】
1020. 月饼(25)
【分析】
为了获取最大的利润,首先把月饼按照单价从高到低排序,然后依次购买,到满足需求为止。
【源码】
#include <iostream>#include <vector>#include <algorithm>#include <iomanip>using namespace std;struct mooncake{ double stock; double money;};bool compare(mooncake lhs, mooncake rhs){ return lhs.money / lhs.stock < rhs.money / rhs.stock;}int main(){ int n, d; cin >> n >> d; vector<mooncake> cakes; for (int i = 0; i < n; ++i){ mooncake mk; cin >> mk.stock; cakes.push_back(mk); } for (int i = 0; i < n; ++i){ cin >> cakes[i].money; } sort(cakes.rbegin(), cakes.rend(), compare); double profit = 0; for (int i = 0; i < n; ++i){ d -= cakes[i].stock; if (d == 0){ profit += cakes[i].money; break; } else if (d < 0){ d += cakes[i].stock; profit += d * cakes[i].money/cakes[i].stock; d = 0; break; } else{ profit += cakes[i].money; } } cout << setprecision(2) << fixed << profit << endl; system("pause"); return 0;}【点评】
此题用到了贪婪思想,为较简单的模拟题。
0 0
- PAT Basic Level 1020. 月饼(25)
- PAT BASIC LEVEL 1020. 月饼 (25)
- PAT (Basic Level) Practise (中文)1020. 月饼 (25)
- PAT (Basic Level) Practise (中文)1020. 月饼 (25)
- PAT (Basic Level) Practise (中文)1020. 月饼 (25)
- PAT (Basic Level) Practise (中文) 1020. 月饼 (25)
- PAT (Basic Level) Practise (中文)1020. 月饼 (25)
- PAT (Basic Level)1020. 月饼
- 【C++】浙大PAT (Basic Level)1020. 月饼 (25)
- PAT (Basic Level) Practise (中文)1020月饼 (25)
- Pat(Basic Level)Practice--1020(月饼)
- Basic Level 1020. 月饼 (25)
- PAT (Basic Level) Practise (中文)1020. 月饼 (25) C语言
- PAT Basic Level 20.月饼
- 【PAT 乙级(Basic Level)】月饼
- PAT(Basic Level)_1020_月饼
- PAT乙级(Basic Level)真题 >月饼
- PAT Basic 1020. 月饼 (25)(C语言实现)
- 写给Python初学者的设计模式入门
- XCode快捷键
- Selenium私房菜系列3 -- Selenium API参考手册
- Linux命令
- html 超链接 A 点击去虚线
- PAT Basic Level 1020. 月饼(25)
- Sublime Text 3技巧:支持GB2312和GBK编码
- $(document).ready(function(){ });
- 使用T-SQL进行SQL数据库的维护
- Cocos2d-x Win7环境编译apk
- Android截屏功能
- win8安装oracle 11g 报错 要求的结果: 5.0,5.1,5.2,6.0 6.1 之一 实际结果: 6.2 .
- 服务器安装ubuntu小记
- Java可以做什么及可以给我们带来什么?