HDU ACM 2187 悼念512汶川大地震遇难同胞——老人是真饿了
2015-11-22 21:21
351 查看
原题描述
Problem Description
对于幸存的灾民来说,最急待解决的显然是温饱问题,救灾部队一边在组织人员全力打通交通,一边在组织采购粮食。现在假设下拨了一定数量的救灾经费要去市场采购大米(散装)。如果市场有m种大米,各种大米的单价和重量已知,请问,为了满足更多灾民的需求,最多能采购多少重量的大米呢?Input
输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(0Output
对于每组测试数据,请输出能够购买大米的最多重量(你可以假设经费买不光所有的大米)。每个实例的输出占一行,保留2位小数。
Sample Input
17 2
3 3
4 4
Sample Output
2.33解题思路
傲娇了,没有写。参考本博客类似的贪心排序题。参考代码
#include <iostream> #include <algorithm> #include <iomanip> using namespace std; struct rice { int p; int h; }r[1001]; bool comp(rice r1, rice r2) { return r1.p < r2.p; } int main() { int c, n, m; double weight; double money; int k; cin >> c; while (c--) { cin >> n >> m; weight = 0; money = (double)n; k = 0; for (int i = 0; i < m; i++) { cin >> r[i].p >> r[i].h; } sort(r, r + m, comp); while (money > 0.0) { if ((double)(r[k].p * r[k].h) >= money) { weight += money / (double)r[k].p; money = 0.0; } else { weight += (double)r[k].h; money -= (double)(r[k].p * r[k].h); k++; } } cout << setprecision(2) << fixed << weight << endl; } }
相关文章推荐
- cocos动画系统及绘制
- samba服务器再次启动问题
- 关于JS中的引用和复制(传值和传址)
- 实体框架(Entity Framework)--简介
- ubuntu/Kubuntu 14.04以上无法安装傲游maxthon问题解决
- NYOJ 214 单调递增子序列(二)(LIS O(nlogn)算法)
- ubuntu中修改了sudoers的权限导致,sudoers不能用的解决
- 舍不得方向下就 就紧紧抱住
- 基于端口号建立虚拟站点
- 第十一周 第八章学习
- nginx.conf配置
- 【Linux环境编程】内存管理:函数栈空间,虚拟内存及其分配
- django:第一个网页
- 第八章 异常控制流
- mybatis简单实例
- CSS选择器详解
- CCNA之路-1-静态路由的配置
- 我的第一个python(ACM题目)
- jquery语法(1)选择器
- 我的linux学习之路---配置VNC服务器(1)