hdu1009 FatMouse' Trade

来源:互联网 发布:sql create sequence 编辑:程序博客网 时间:2024/06/03 14:58

典型的贪心

题意:老鼠想从猫守卫那里得到一些咖啡豆,他带了M的物品,贿赂猫守卫,输入M,N,N表示N组数据,每组输入为咖啡豆的量,需要贿赂猫的量,M可以按百分比分配,求怎么得到的咖啡豆最多


#include <iostream>#include <cstdio>#include <algorithm>using namespace std;struct trade{    int javabean;    int catfood;    double cost_performance;}fatmouse[1111];bool cmp(trade a, trade b){    return a.cost_performance>b.cost_performance;}int main(){    //freopen("in.txt","r",stdin);    int M,N;    while(cin>>M>>N&&(M!=-1||N!=-1))    {        for(int i=0 ; i<N ;i++)        {            cin>>fatmouse[i].javabean>>fatmouse[i].catfood;            fatmouse[i].cost_performance=(double)fatmouse[i].javabean/fatmouse[i].catfood;        }        sort(fatmouse,fatmouse+N,cmp);        double sum=0;        for(int i=0;i<N;i++)        {            if(M>fatmouse[i].catfood)            {                sum+=fatmouse[i].javabean;                M-=fatmouse[i].catfood;            }            else            {                sum+=fatmouse[i].cost_performance*M;                M=0;                break;            }        }        printf("%.3lf\n",sum);    }    return 0;}


0 0
原创粉丝点击