HDU1009 FatMouse' Trade

简介:
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1009

#include <iostream>
#include <vector>
#include<algorithm>
#include <iomanip>
using namespace std;
class House
{
private:
    int nBean;
    int nFood;
    double ratio;
public:
    House(int nB,int nF):nBean(nB),nFood(nF)
    {
        ratio = static_cast<double>(nBean)/static_cast<double>(nFood);
    }
    int getBeanNum()const
    {
        return nBean;
    }
    int getFoodNum()const
    {
        return nFood;
    }
    double getRatio()const
    {
        return ratio;
    }
    bool operator < (const House& rhs)const 
    {
         return ratio > rhs.ratio;
    }
};


int main()
{
    int m,n,i,nB,nF;
    double total;
    while(cin>>m>>n&&!(m==-1&&n==-1))
    {
        total = 0.0f;
        vector<House> vHouse;
        for(i=0;i<n;++i)
        {
            cin>>nB>>nF;
            House tmp(nB,nF);
            vHouse.push_back(tmp);
        }
        sort(vHouse.begin(),vHouse.end());
          //贪心算法
        for(i=0;i<vHouse.size()&&m>0;++i)
        {
            if(m>vHouse[i].getFoodNum())
            {
                m -= vHouse[i].getFoodNum();
                total += vHouse[i].getBeanNum();
            }
            else
            {
            
                total += m*vHouse[i].getRatio();
                m = 0;
                break;
            }
        }
        cout.setf(ios::fixed);
        cout.precision(3);
        cout<<total<<endl;
    }
    return 0;
}


本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2007/12/24/1012219.html,如需转载请自行联系原作者
目录
相关文章
|
测试技术
HDU-1847,Good Luck in CET-4 Everybody!(巴什博弈)
HDU-1847,Good Luck in CET-4 Everybody!(巴什博弈)
HDU-1009,FatMouse' Trade(贪心水题)
HDU-1009,FatMouse' Trade(贪心水题)
HDU-1029,Ignatius and the Princess IV
HDU-1029,Ignatius and the Princess IV
|
Java C语言
HDOJ/HDU 1029 Ignatius and the Princess IV(简单DP,排序)
HDOJ/HDU 1029 Ignatius and the Princess IV(简单DP,排序)
118 0
HDOJ(HDU) 1718 Rank(水题、、、)
HDOJ(HDU) 1718 Rank(水题、、、)
58 0
HDOJ/HDU 1241 Oil Deposits(经典DFS)
HDOJ/HDU 1241 Oil Deposits(经典DFS)
65 0
|
Java
HDOJ(HDU) 2164 Rock, Paper, or Scissors?
HDOJ(HDU) 2164 Rock, Paper, or Scissors?
92 0
POJ 2390 Bank Interest
POJ 2390 Bank Interest
85 0