zoukankan      html  css  js  c++  java
  • HDU-1009-FatMouse' Trade(贪心)

    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<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    
    using namespace std;
    
    struct node
    {
    	int a,b;
    	double val;
    }p[10005];
    bool cmp(node x,node y)
    {
    	return x.val>y.val;
    }
    int main()
    {
    	int n,m;
    	while(scanf("%d%d",&n,&m)!=EOF)
    	{
    		if(n==-1&&m==-1)
    		{
    			break;
    		}
    		for(int t=0;t<m;t++)
    		{
    			scanf("%d%d",&p[t].a,&p[t].b);
    			p[t].val=p[t].a*1.0/(p[t].b*1.0);
    		}
    		sort(p,p+m,cmp);
    		double s1=0;
    		for(int t=0;t<m;t++)
    		{
    			if(n>=p[t].b)
    			{
    			n-=p[t].b;
    			s1+=p[t].a;
    		   }
    		   else
    		   {
    		   	s1+=(p[t].a*1.0/p[t].b)*n;
    		   	break;
    		   }
    		}
    		printf("%.3f
    ",s1);
    	}
    	
    	return 0;
    }
  • 相关阅读:
    python 数字格式化
    Python字符串
    Nginx 深入-动静分离, 静态资源css, js 前端请求404问题
    Spring colud gateway 源码小计
    Nginx 场景应用
    Nginx valid_referer 防盗链
    Nginx 基础
    JNI 从零开始一次DEMO调用 IDEA 2018.2.5 + visual studio 2019
    Bitmap 图片说明
    HP激光打印机解密
  • 原文地址:https://www.cnblogs.com/Staceyacm/p/10781987.html
Copyright © 2011-2022 走看看