HDU 1009-FatMouse' Trade

来源:互联网 发布:python 分布式 编辑:程序博客网 时间:2024/05/12 21:47

这里写图片描述
这里写图片描述
题目链接

题目分析

题意

胖老鼠准备了M磅猫粮与看守JavaBean仓库的猫做交易。仓库有N个房间,第i个房间有J[i]磅JavaBean并且需要F[i]磅猫粮,它不必换得房间里的所有JavaBean,可以换得同等猫粮比例的JavaBean,求得它最多能换得多少JavaBean。

思路

每磅猫粮换得的JavaBean多的房间,优先选择,最终能换得最多的JavaBean

代码

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define MAX 1500struct node{    double rv;//指价值     double rf,rj;//rf指猫粮,rj指JavaBean }s[MAX];bool cmp(node a,node b){    return a.rv>b.rv;}int main(){    //freopen("TXA.txt","r",stdin);    int N;    double M,ans;    while(~scanf("%lf%d",&M,&N)){        if(M==-1&&N==-1)            break;        for(int i=0;i<N;i++){            scanf("%lf%lf",&s[i].rj,&s[i].rf);            s[i].rv=s[i].rj/s[i].rf;        }        sort(s,s+N,cmp);        ans=0;        for(int i=0;i<N;i++){            if(M<s[i].rf){                ans+=s[i].rj*(M/s[i].rf);                break;            }else{                ans+=s[i].rj;                M-=s[i].rf;            }        }        printf("%.3lf\n",ans);    }    return 0;}
0 0
原创粉丝点击