HDU1009 - FatMouse' Trade (贪心)

来源:互联网 发布:网络食品安全新规 新闻 编辑:程序博客网 时间:2024/05/21 11:07

题目链接 : HDU1009 - FatMouse’ Trade

  • 思路
  • 代码

思路

水题,简单 贪心,按照 比率大小 进行排序,然后依次交换,用 int 的话注意下 类型转化 就行了

代码

#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int maxn = 1000;struct node{    double j;    double f;}room[maxn+10];struct cmp{    bool operator()(const node & a, const node & b)    {        return (a.j/a.f) > (b.j/b.f);    }};int main(){    int m, n;    while(scanf("%d%d", &m, &n) && (m!=-1))    {        for(int i=0; i<n; i++)            scanf("%lf%lf", &room[i].j, &room[i].f);        sort(room, room+n, cmp());        double re = 0;        int cur = 0;        while(m>0 && cur<n)        {            if(m>=room[cur].f)            {                re += room[cur].j;                m -= room[cur].f;                cur++;            }            else            {                re += room[cur].j/room[cur].f*m;                break;            }        }        printf("%.3f\n", re);    }    return 0;}
0 0
原创粉丝点击