HDU 1009 FatMouse' Trade (贪心)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009
题目大意:肥鼠准备了  磅的猫粮,准备和看管仓库的猫交易,仓库里装有他最喜爱的食物 
 豆。仓库有 
 个房间。第 
 间房包含了 
 磅的 
 豆,需要 
 磅的猫粮。肥鼠不必为了房间中的所有 
 豆而交易,相反,他可以支付 
% 磅的猫粮去交换得到 
% 磅的 
 豆。这里,
 表示一个实数。现在他将这项任务分配给了你:请告诉他,能够获得的 
 豆的最大值是多少。
题目要求:(输入)输入包含多组测试数据。对于每组测试数据,以包含了两个非负整数  和 
 的一行开始。接下来的 
 行,每行相应包含了两个非负整数 
 和 
。最后一组测试数据是两个 
。所有的整数均不超过 
。
(输出)对于每组测试数据,在单独的一行中打印一个实数,精确到小数点后 位数,表示肥鼠能够取得的 
 豆的最大值。
题目分析:刚开始一直在用动态规划写,最后才看出来是一道贪心的题。思路其实很简单:算出每磅猫粮能兑换的  豆,并递减排序,每次寻找局部最优解即可。
代码如下:
#include <iostream>
#include <algorithm>
#define MAX 1000
using namespace std;
struct Item {
	double J, F, V;
}; 
bool cmp(Item a, Item b) {
	return a.V > b.V;
}
int M, N;
Item items[MAX + 1];
int main() {
	while (cin >> M >> N && M != -1 && N != -1) {
		for (int i = 0; i < N; i++) {
			cin >> items[i].J >> items[i].F;
			items[i].V = items[i].J / items[i].F;  // 求出每磅猫粮可兑换的 Java 都数量
		}
		sort(items, items + N, cmp);
		double ans = 0;
		for (int i = 0; i < N; i++) {
			if (items[i].F <= M) {                // 如果所遇要的猫粮 没有拥有的多
				ans += items[i].J;
				M -= items[i].F;
			} else {
				ans += M * items[i].V;
				break;
			}
		}
		printf("%.3lf\n", ans);
	}
	return 0;
} HDU 1009 FatMouse' Trade (贪心)的更多相关文章
- HDU 1009 FatMouse' Trade(贪心)
		FatMouse' Trade Problem Description FatMouse prepared M pounds of cat food, ready to trade with the ... 
- HDU 1009 FatMouse' Trade(简单贪心 物品可分割的背包问题)
		传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1009 FatMouse' Trade Time Limit: 2000/1000 MS (Java/O ... 
- HDU 1009 FatMouse' Trade(简单贪心)
		传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1009 FatMouse' Trade Time Limit: 2000/1000 MS (Java/O ... 
- hdu 1009:FatMouse' Trade(贪心)
		FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ... 
- HDU 1009 FatMouse' Trade【贪心】
		解题思路:一只老鼠共有m的猫粮,给出n个房间,每一间房间可以用f[i]的猫粮换取w[i]的豆,问老鼠最多能够获得豆的数量 sum 即每一间房间的豆的单价为v[i]=f[i]/w[i],要想买到最多的豆 ... 
- HDOJ.1009 FatMouse' Trade (贪心)
		FatMouse' Trade 点我挑战题目 题意分析 每组数据,给出有的猫粮m与房间数n,接着有n行,分别是这个房间存放的食物和所需要的猫粮.求这组数据能保证的最大的食物是多少? (可以不完全保证这 ... 
- Hdu 1009 FatMouse' Trade
		FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ... 
- Hdu 1009 FatMouse' Trade                                                                                            2016-05-05 23:02             86人阅读              评论(0)              收藏
		FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ... 
- Hdu 1009 FatMouse' Trade                                                    分类:            Translation Mode             2014-08-04 14:07    74人阅读    评论(0)    收藏
		FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ... 
- [题解]hdu 1009 FatMouse' Trade(贪心基础题)
		Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding th ... 
随机推荐
- Jenkins 报错合集
			目录 一.启动项目显示,没有接受许可之前不能够自动安装 二.明明配置了jdk但还是说找不到 三.jenkins-RestAPI调用出现Error 403 No valid crumb was incl ... 
- 巧用符号链接迁移 HDFS 数据,业务完全无感知!
			问题 JuiceFS 是一个基于对象存储的分布式文件系统,在之前跟对象存储比较的文章中已经介绍了 JuiceFS 能够保证数据的强一致性和极高的读写性能,因此完全可以用来替代 HDFS.但是数据平台整 ... 
- HTML界面监控键盘回车Enter按下并绑定动作
			本示例绑定键盘回车键(Enter),触发发送WebSocket消息动作 <script type="text/javascript"> //监控键盘Enter 回车键按 ... 
- Nginxre  quest_time 和upstream_response_time
			nginx优化之request_time 和upstream_response_time差别 https://www.cnblogs.com/dongruiha/p/7007801.html http ... 
- 在mysql5.8中用json_extract函数解析json
			背景:某个字段的数据中是JSON,需要提取其中的卡号部分,如: {"objType":"WARE","orderId":6771254073 ... 
- SQL注入绕过
			空格字符绕过 %09 TAB建(水平) %0a 新建一行,换行 %0b TAB建(垂直) %0c 新的一页 %0d return 功能 %a0 空格 %00 /**/ /*!*/./*!50009*/ ... 
- Linux c++编译总结(持续更新)
			1. 没有定义的符号 这类的错误, 解决办法:A. 添加对应的头文件(源文件), B.前置声明 1.1 错误描述: error: variable has incomplete type 'class ... 
- 【LeetCode】1051. Height Checker 解题报告(Python & C++)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 排序比较 日期 题目地址:https://leetc ... 
- 【LeetCode】572. 另一个树的子树 Subtree of Another Tree(Python & Java)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:先序遍历 方法二:DFS + DFS 方法三 ... 
- 【LeetCode】899. Orderly Queue 解题报告(Python)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/orderly- ... 
