hdu 1009 FatMouse' Trade 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009
贪心入门
题目大意:fat mouse跟cat做生意,市场上有很多间屋,每个屋里都有一定数量的javabean--fat mouse爱吃的东西,需要用fat mouse手中的猫粮来交换,换完为止。
题目分析:贪心思想,按照性价比排序后顺着找即可。要注意最后的处理。
code:
#include<cstdio>
#include<algorithm>
using namespace std;
struct node
{
int j,f;
double ratio;
}wh[1010];
int cmp(node a,node b)
{
return a.ratio>b.ratio?1:0;
}
int main()
{
int m,n;
double ans;
while(scanf("%d%d",&m,&n),m!=-1||n!=-1)
{
ans=0;
for(int i=0;i<n;i++)
{
scanf("%d%d",&wh[i].j,&wh[i].f);
wh[i].ratio=wh[i].j*1./wh[i].f;
}
sort(wh,wh+n,cmp);
for(int i=0;i<n;i++)
{
if(m>wh[i].f)
{
ans+=wh[i].j;
m-=wh[i].f;
}
else
{
ans+=wh[i].j*1.*m/wh[i].f;
break;
}
}
printf("%.3f\n",ans);
}
}
PS:果然入门……