zoukankan      html  css  js  c++  java
  • HDOJ.1009 FatMouse' Trade (贪心)

    FatMouse’ Trade

    点我挑战题目

    题意分析

    每组数据,给出有的猫粮m与房间数n,接着有n行,分别是这个房间存放的食物和所需要的猫粮。求这组数据能保证的最大的食物是多少? (可以不完全保证这个房间的食物,及食物和猫粮可以同时乘a%)
    经典的贪心策略。
    先保证性价比最高的房间(花较少的猫粮可以保证最多的粮食),每组数据计算一个比率rate = 房间存放的粮食/所需要的猫粮,按照rate对其进行降序排列,优先满足上方的房间即可。

    代码纵览

    /*
        Title:HDOJ.1009
        Author:pengwill
        Date:2016-11-22
    */
    #include <iostream>
    #include <stdio.h>
    #include <algorithm>
    using namespace std;
    struct room{
        double food;
        double need;
        double rate;
    }item[1001];
    double cmp(room a,room b)
    {
        return a.rate > b.rate;
    }
    
    int main()
    {
        int n;
        double m;
        while(scanf("%lf %d",&m,&n)!= EOF && (m!= -1 && n!= -1)){
            int i;
            for(i = 0;i<n;++i){
                scanf("%lf %lf", &item[i].food,&item[i].need);
                item[i].rate = item[i].food / item[i].need;
            }
            sort(item,item+n,cmp);
            double ret = 0;
            for(i = 0;i < n; ++i){
                if(m>item[i].need){
                    ret+=item[i].food;
                    m-=item[i].need;
                }else{
                    double percentage = m/item[i].need;
                    ret+=item[i].food * percentage;
                    break;
                }
            }
            printf("%.3f
    ",ret);
        }
        return 0;
    }
    
  • 相关阅读:
    hello
    1234566i 还是规范
    萨嘎给
    DRF 商城项目
    DRF 商城项目
    DRF 商城项目
    Windows 上连接本地 Linux虚拟机上的 mysql 数据库
    xadmin 数据添加报错: IndexError: list index out of range
    python 实现聊天室
    xadmin 组件拓展自定义使用
  • 原文地址:https://www.cnblogs.com/pengwill/p/7367214.html
Copyright © 2011-2022 走看看