HDU 1009 FatMouse' Trade
2012-07-23 22:32
267 查看
Problem 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
Sample Output
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磅猫食,准备拿这些猫食跟猫交换自己喜欢的食物。有N个房间,每个房间里面都有食物。你可以得到J[i]但你需要付出F[i]的猫食。要你计算你有M磅猫食可以获得最多食物的重量。思路:贪心算法,求最优解。将J[i]/F[i]的值从大到小排列,总是先取最大的,就能保证能够得出的最大值。代码:Language:C++#include<cstdio> #include<algorithm> using namespace std; struct node { double get,pay,rate; }; bool cmp(node a,node b) { return b.rate<a.rate; } int main() { node data[1001]; int line,i; double ans,food; while(scanf("%lf%d",&food,&line)) { ans=0; if(food==-1&&line==-1)break; for(i=0;i<line;i++) { scanf("%lf%lf",&data[i].get,&data[i].pay); data[i].rate=data[i].get/data[i].pay; } sort(data,data+line,cmp); for(i=0;i<line;i++) { if(food>=data[i].pay) { ans+=data[i].get; food-=data[i].pay; } else { ans+=(double)food*data[i].rate; break; } } printf("%.3lf\n",ans); } return 0; }
相关文章推荐
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade(排序)
- hdu 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- hdu1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- HDU-1009-FatMouse' Trade
- HDU 1009 FatMouse' Trade(贪心)
- 贪心 HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade
- Hdu 1009 FatMouse' Trade解题报告
- HDU1009 FatMouse' Trade贪心
- HDU1009 - FatMouse' Trade (贪心)
- HDU——1009——FatMouse' Trade
- 【贪心】 hdu1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade
- HDU1009 FatMouse' Trade(经典贪心)
- hdu 1009 FatMouse' Trade