hdu1009FatMouse' Trade

来源:互联网 发布:哪些网络巨头 编辑:程序博客网 时间:2024/06/06 00:49

题目链接:FatMouse' Trade

题目大意:有一只老鼠想和猫换取自己喜欢吃的食物(javabeans)它自己拥有的猫食m,问最多能得到多少javabeans?地道的贪心,注意贪心的策略是尽可能的拿更少的猫食物换取更多的javabeans。

AC代码:

#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;struct T{    double javabean;    double Fatfood;    double max;}trade[1002];bool cmp(T a,T b){    return a.max>b.max;}int main(){    double m;    int n;    while(cin>>m>>n)    {        if(m==-1 && n==-1)            break;        for(int i=0;i<n;i++)        {            cin>>trade[i].javabean>>trade[i].Fatfood;            trade[i].max=trade[i].javabean/trade[i].Fatfood;        }        sort(trade,trade+n,cmp);//按照单位猫食得到的最大javabean进行排序(从大到小)        double sum=0;        for(int i=0;i<n;i++)        {            if(trade[i].Fatfood<=m)            {                sum+=trade[i].javabean;                m-=trade[i].Fatfood;            }            else            {                sum+=m*trade[i].max;                break;            }        }        printf("%.3f\n",sum);    }    return 0;}


 

0 0
原创粉丝点击