zoj 2109 FatMouse' Trade
FatMouse' Trade
Time Limit: 2 Seconds Memory Limit: 65536 KB
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
Input
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test case is followed by two -1's. All integers are not greater than 1000.
Output
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.
Sample Input
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
Sample Output
13.333
31.500
分析:贪心法,找性价比最高的房间。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct fm{
int j, f;
double aver;
} room; bool cmp(const room &a, const room &b){
return a.aver > b.aver;
} int main(){
int m, n;
cout.precision();
vector<room> v;
while(cin >> m >> n){
if(m == - && n == -)
break;
v.clear();
for(int i = ; i < n; i++){
room rm;
v.push_back(rm);
cin >> v[i].j >> v[i].f;
v[i].aver = double(v[i].j) / v[i].f;
}
sort(v.begin(), v.end(), cmp);
double sum = ;
for(int i = ; i < n; i++){
if(m > v[i].f){
sum += v[i].j;
m -= v[i].f;
} else {
sum += (double)m * v[i].j / v[i].f;
break;
}
}
cout << fixed << sum << endl;
}
return ;
}
zoj 2109 FatMouse' Trade的更多相关文章
- ZOJ 2109 FatMouse' Trade (背包 dp + 贪婪)
		
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1109 FatMouse prepared M pounds of cat ...
 - 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(贪心)
		
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
 - 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) ...
 - 1009 FatMouse' Trade
		
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
 - FatMouse' Trade
		
/* problem: FatMouse' Trade this is greedy problem. firstly:we should calculate the average J[i]/F[i ...
 - HDU1009 FatMouse' Trade
		
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
 - HDU 1009 FatMouse' Trade(贪心)
		
FatMouse' Trade Problem Description FatMouse prepared M pounds of cat food, ready to trade with the ...
 - FatMouse' Trade -HZNU寒假集训
		
FatMouse' Trade FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the wa ...
 
随机推荐
- 转--v$session & v$process各字段的说明【转载】
			
Oracle 动态性能表 v$session & v$process 整理自google出来的网络资源.google是个好东东.没有google我会心神不宁. v$session SADDR: ...
 - HDU 2227 Find the nondecreasing subsequences  dp思想 + 树状数组
			
http://acm.hdu.edu.cn/showproblem.php?pid=2227 用dp[i]表示以第i个数为结尾的nondecreasing串有多少个. 那么对于每个a[i] 要去找 & ...
 - this的试题
			
1.var x=12; function test(){ console.log(this.x) } test() //主体是window 2.var x=12; function test ...
 - 【学习笔记】深入理解js原型和闭包(7)——原型的灵活性
			
在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完).压个啥样,就得是个啥样,不能随便动,动一动就坏了. 而在javascript中,就没有 ...
 - Smart SVN的使用
			
最近项目使用了SVN,为管理代码起到了很好的作用!但是,对于很多初步使用着,还是非常不容易! 公司使用的是Smart SVN 客户端. Smart SVN 这个工具总体还是挺不错的! 在代码的提交和获 ...
 - 用JS检测页面加载的不同阶段状态
			
这可以通过用document.onreadystatechange的方法来监听状态改变, 然后用document.readyState == “complete”判断是否加载完成. 可以采用2个div ...
 - eject - 弹出可移动介质
			
SYNOPSIS(总览) eject -h.breject [-vnrsfq] [<name>] eject [-vn] -d.breject [-vn] -a on|off|1|0 [& ...
 - 【整理】解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function
			
解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function https://www.cnblogs.com/jaso ...
 - softmax_regression完成mnist手写体数据集的识别
			
---恢复内容开始--- import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnis ...
 - PHP06 流程控制
			
学习要点 选择结构 循环结构 学习目标 掌握PHP的选择结构 掌握PHP的循环结构 流程控制概述 程序 程序:一系列计算机指令的集合. 编程语言:开发程序的工具. 程序执行结构 计算机程序有三种基本执 ...