zoukankan      html  css  js  c++  java
  • 【hdoj_2187】老人是真饿了

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2187


    题意:由很多种价格的大米,在经费一定的情况下,买重量更多的大米,并且题目假设经费买不光所有的大米.


    思路:贪心法,先买价格低的,再买价格高的.所以先按照价格递增将大米排序(结构体排序),然后消耗经费,至到经费用完.


    C++代码如下

    #include<iostream>
    #include<algorithm>
    #include<iomanip>
    using namespace std;
    
    struct Rice//大米有价格、重量两个属性 
    {
    	int p,h;	
    };
    
    bool cmp(Rice r1,Rice r2)//用于结构体排序 
    {
    	return r1.p < r2.p;
    }
    
    int main()
    {
    	int C;
    	cin >> C;//测试的数据有C组 
    	while(C--)
    	{
    		int n,m;
    		cin >> n >> m;
    		Rice * r = new Rice[m];
    		for(int i=0;i<m;i++)
    			cin >> r[i].p >> r[i].h;//输入大米价格和重量 
    		sort(r,r+m,cmp);//排序 
    		double result = 0.0;//能买到的大米的最大重量,用double 
    		for(int i=0;i<m;i++)
    		{
    			if(n==0)	break;
    			if(n>r[i].p * r[i].h)
    			{
    				result += r[i].h;
    				n -= r[i].p * r[i].h;
    			}
    			else
    			{
    				result += (double)(n) / r[i].p;
    				break; //经费用完了,退出 
    			}
    		}
    		cout << setprecision(2) << fixed << result << endl;//两位小数(#include<iomanip>) 
    	}
    	
    	return 0;
    }


  • 相关阅读:
    python学习(一)
    Ubuntu安装git
    HashMap源码分析
    nginx加密,访问接口认证
    MD5加密加盐
    xml转对象,对象转xml工具类
    java将对象转map,map转对象工具类
    阿里备战--面试搜集
    java将秒转换为时分秒工具类
    Spring和SpringMvc详细讲解
  • 原文地址:https://www.cnblogs.com/tensory/p/6590764.html
Copyright © 2011-2022 走看看