HDU 1009 FatMouse' Trade

来源:互联网 发布:洛阳智网网络 编辑:程序博客网 时间:2024/04/29 15:50

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009


思路:贪心


先买性价比最高的物品,知道钱花光。


#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct node{   double w,v,p;}a[1005];bool cmp(node b,node c){    return b.p>c.p;}int main(){   int n,m,i;   double sum;   while(scanf("%d%d",&n,&m)&&(n!=-1&&m!=-1))   {      for(i=0;i<m;i++)  {     scanf("%lf%lf",&a[i].w,&a[i].v); a[i].p=a[i].w/a[i].v;  }  sort(a,a+m,cmp);  sum=0;  for(i=0;i<m;i++)  {     if(n>=a[i].v)  {    sum+=a[i].w;n-=a[i].v; } else if(n>0) {    sum+=a[i].p*n;n=0; } if(n==0) break;  }  printf("%.3lf\n",sum);   }   return 0;}