标签:des style blog io os ar java for sp
ZJCPC2004
题目大意:有N个房间,每个房间存有FatMouse喜欢吃的食物,但是每个房间
的食物都需要用相应的猫粮去换。FatMouse 有M磅的猫粮,为它最多能换到多
少的食物。
思路:贪心方法。用结构体存每间房间的食物量和所需猫粮量。按食物的单价(
即食物/猫粮的大小)进行排列,每次选单价最小的购买,知道M磅猫粮用完
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct warehouse
{
double j;
double f;
}a[1100];
bool cmp(warehouse a,warehouse b)
{
return a.f/a.g < b.f/b.g;
}
int main()
{
int N;
double M;
while(~scanf("%lf%d",&M,&N)&& (M!=-1||N!=-1))
{
memset(a,0,sizeof(a));
for(int i = 0; i < N; i++)
{
scanf("%lf%lf",&a[i].j,&a[i].f);
}
sort(a,a+N,cmp);
double sum = 0;
for(int i = 0; i < N; i++)
{
if(M <= 0.000001)
break;
if(M >= a[i].f)
{
sum += a[i].j;
M -= a[i].f;
}
else
{
sum += M*a[i].j/a[i].f;
M = 0;
}
}
printf("%.3lf\n",sum);
}
return 0;
}
HDU1009_FatMouse' Trade【贪心】【水题】
标签:des style blog io os ar java for sp
原文地址:http://blog.csdn.net/lianai911/article/details/40266431