Greedy Mouse

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

A fat mouse prepared M pounds of cat food,ready to trade with the cats guarding the warehouse containing his

favorite food:peanut. The warehouse has N rooms.The ith room containsW[i] pounds of peanut and requires

F[i] pounds of cat food. Fatmouse does not have to trade for all the peanut in the room,instead,he may get

W[i]*a% pounds of peanut if he pays F[i]*a% pounds of cat food.The mouse is a stupid mouse,so can you tell

him the maximum amount of peanut he can obtain.

输入
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers W[i] and F[i] respectively. The test case is terminated by two -1. All integers are not greater than 1000.
输出
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of penaut that FatMouse can obtain.
样例输入
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
样例输出
13.333
31.500
上传者
TC_李远航

思路:翻译:胖老鼠准备英镑的猫粮,准备与猫的贸易保护仓库包含他最喜欢的食物:花生。仓库有N个房间。第i个房间containsW[我]磅的花生,需要F[我]磅的猫粮。Fatmouse不必对所有房间里的花生贸易,相反,他可能会得到W[我]* %磅的花生如果他支付F[我]* %磅的猫粮。鼠标是一个愚蠢的鼠标,所以你能告诉他可以获得最大的花生。

”先把性价比高的保住,嗯,就是这样的“ 耗子如是说=-=

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cmath>
using namespace std;struct mouse
{int w,f;double rate;
}p[1005];int cmp(mouse a,mouse b)
{return a.rate>=b.rate;
}int main()
{int m,n;while(scanf("%d%d",&m,&n)){if(m==-1&&n==-1)break;for(int i=0;i<n;i++){scanf("%d%d",&p[i].w,&p[i].f);p[i].rate=p[i].w*1.0/p[i].f;}sort(p,p+n,cmp);//        for(int i=0;i<n;i++)
//        {
//            printf("%d %d %lf\n",p[i].w,p[i].f,p[i].rate);
//        }double sum=0;for(int i=0;m>0&&i<n;i++){if(p[i].f<=m){sum+=p[i].w;m-=p[i].f;}else{sum += m*p[i].rate;
//                cout<<"**"<<p[i].rate<<endl;;break;}}printf("%.3lf\n",sum);}
}

Greedy Mouse 贪心的耗子 nyoj824(贪心算法)相关推荐

  1. 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

    对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的 边.说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

  2. 贪心算法和01背包算法

    贪心算法和01背包算法 实验报告 1.问题 2.解析 3.设计 4.分析 5.源码 实验报告 课程名称 <算法分析与设计> 实验名称 贪心算法和01背包算法 1.问题 [描述算法问题,首选 ...

  3. Python正则表达式中的贪心模式和非贪心模式

    声明:最近发现有人利用我在百度云盘里免费分享的127课Python视频盈利,并声称获得我的授权.在此,我声明,文末百度云盘里的Python视频是免费的,不会授权给任何人或机构进行销售.如果再发现有人卖 ...

  4. 824 Greedy Mouse

    Greedy Mouse 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 A fat mouse prepared M pounds of cat food,ready  ...

  5. 1/22 测试一(STL 模拟 贪心)C.(贪心,给出气球,输出最好成绩)Contest Balloons

    1/22 测试一(STL 模拟 贪心) C.(贪心,给出气球,输出最好成绩)Contest Balloons One tradition of ACM-ICPC contests is that a ...

  6. 列车调度(贪心):单机调度问题贪心算法

    单机调度问题贪心算法 #题目:火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...

  7. 动态规划从理论到实践-深入理解贪心/分治/回溯/动态规划的算法思想

    摘要:本文主要讲解常见的四种算法,分别为贪心算法:第一步选择最优的走法,算法不能做到全局最优:分治算法:一种处理问题的思想,使用递归来实现:回溯算法:我们枚举所有的解,找到满足期望的解,可以把求解过程 ...

  8. php自动排课贪心算法,关于贪心法的排课算法.pdf

    25 3 V o . 25 No. 3 2005 5 J ourna of Y unnan Norm a Universit y M ay 2005 * 梁 立, 陈玉华, 徐 敏 ( , 65009 ...

  9. POJ3614防晒霜 这个贪心有点东西(贪心+优先队列)

    这个题是说有C头牛去晒太阳,带了L瓶防晒霜,每瓶防晒霜都有一个SPF值(每瓶防晒霜都能解决一个最短路 ) 每头牛给出了他可以接受防晒霜的上限,和下限,每种防晒霜都给出了SPF值与数量. 从防晒霜的sp ...

  10. [贪心] aw3686. 移动序列(贪心+模拟+思维)

    文章目录 1. 题目来源 2. 题目解析 1. 题目来源 链接:3686. 移动序列 2. 题目解析 贪心. 顺序统计相邻两个 1 之间的 0 的个数即可. 时间复杂度:O(n)O(n)O(n) 空间 ...

最新文章

  1. 0基础JavaScript入门教程(一)认识代码
  2. (转载)封装bilibili播放器,自定义边下边播和缓存功能
  3. php编写猜拳游戏,Python中猜拳游戏与猜筛子游戏的实现方法
  4. 算法的优缺点_机器学习算法优缺点 amp; 如何选择
  5. 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp
  6. Java增强之并发编程
  7. 【BZOJ4547】【HDU5171】小奇的集合,暴力+矩阵乘法
  8. con 元器件符号_protues的元件符号名称
  9. phpspider 简单用法和学习,分类一对多爬取数据
  10. jike2021总结
  11. python电影推荐系统_电影推荐系统---协同过滤算法(SVD,NMF)
  12. 滴滴出行小程序体积优化实践
  13. 如何使用微信开发者工具查看Appid以及SECRET
  14. 苹果笔记本上网很慢怎么回事?macbook无线上网慢的解决方法
  15. 过敏性鼻炎、感冒、哮喘
  16. Mac电脑环境变量设置方法及常见环境变量说明
  17. google paly 应用推广 发送渠道广播
  18. 浏览器插件之ActiveX开发
  19. JavaC#实现账号登录、账号注册、修改密码、账号注销等功能
  20. 属性选择器、结构伪类选择器、伪元素选择器

热门文章

  1. Google 网站打不开
  2. Linux的ip_conntrack半景
  3. 从企业角度看:网站设计的关键是了解与沟通
  4. 数据更新(2020-4-1)
  5. android studio文件读写,Android 中的文件读写操作
  6. Java基础,使用switch分支实现出计算器计算机功能,简单易理解
  7. 计算机机房维护与管理,计算机机房的管理与维护.doc
  8. java编程创建警告_java – 无法阻止ant生成编译器Sun专有API警告
  9. 服务器未能识别 HTTP 标头 SOAPAction 的值
  10. Fiddler工具介绍一