您的位置:首页 > 其它

hdu 1009 FatMouse' Trade(DP)

2012-10-14 17:38 537 查看
点击打开链接

类似01背包,小猫总共有价值m的食物,去和小狗换,小狗有j磅的食物,需要小猫用价值f的食物换,

则p=j/f代表每磅需要的食物,即单价

#include"stdio.h"
int main()
{
int j[1111],f[1111],t,m,n,i;
double p[1111],sum,max;
//j[]代表价值,f[]代表总磅数
while(scanf("%d%d",&m,&n)!=EOF&&(m!=-1||n!=-1))
{
for(i=0;i<n;i++)
{
scanf("%d%d",&j[i],&f[i]);
p[i]=1.0*j[i]/f[i];//p[]代表单价
}
sum=0;
while(n&&m)
{
max=p[0];
t=0;
for(i=1;i<n;i++)
{
if(p[i]>max)
{
max=p[i];t=i;
}
}
if(m>f[t])
{
m-=f[t];
sum+=j[t];
p[t]=0;
}
else
{
sum+=(double)m*j[t]/f[t];
m=0;
}
}
printf("%.3f\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: