[贪心] HDU1009 FatMouse' Trade
2015-07-24 10:22
351 查看
A - FatMouse’ Trade
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit
Status
Description
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
设一个结构体,按单价从大到小排个序,依次取出,直到将m减到0为止就可以了。
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit
Status
Description
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
设一个结构体,按单价从大到小排个序,依次取出,直到将m减到0为止就可以了。
#include <cstdio> #include<iostream> #include <cstring> #include <algorithm> using namespace std; const double eps = 1e-8; const int MAXN = 200020; struct node { int javaBean; int catFood; double percent; }; node room[MAXN]; bool cmp(node a,node b) { return a.percent > b.percent; } int main() { int M,N; while(scanf("%d%d",&M,&N) != EOF) { if (M==-1 && N == -1) break; for(int i = 0 ; i < N; i++) { scanf("%d%d",&room[i].javaBean,&room[i].catFood); room[i].percent = (double) room[i].javaBean / room[i].catFood; } sort(room,room+N,cmp); double ans = 0; for(int i = 0;i<N;i++) { if (M > room[i].catFood) { M -= room[i].catFood; ans += room[i].javaBean; } else { ans += room[i].percent * M; M = 0; break; } } printf("%.3lf\n",ans); } return 0; }
相关文章推荐
- PHP 页面编码声明方法详解(header或meta,解决中文乱码问题)
- NSFileManager文件操作的十个小功能
- sublime批量编辑快捷键
- RHLE5的iptables做NAT简单做法
- 0xcf8 揭底
- Full Stack developer and Fog Computing
- ef 事务
- Python-常用库扩展
- Algorithms—23.Merge k Sorted Lists
- 其他
- HCE基础知识普及
- Spring 的扫描
- ac53 python中文输入输出在windows下的cmd中的实现
- 10亿美金的教训——我居然错过Airbnb的天使轮
- 【BZOJ】1257 余数之和
- SetFilePointer设置文件指针使用示例
- SSZipArchive使用详解
- leetcode-动态规划:Unique Binary Search Trees
- Java连接mysql数据库
- iOS触摸事件