Greedy Mouse 贪心的耗子 nyoj824(贪心算法)
Greedy Mouse
- 描述
-
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(贪心算法)相关推荐
- 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度
对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的 边.说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度
- 贪心算法和01背包算法
贪心算法和01背包算法 实验报告 1.问题 2.解析 3.设计 4.分析 5.源码 实验报告 课程名称 <算法分析与设计> 实验名称 贪心算法和01背包算法 1.问题 [描述算法问题,首选 ...
- Python正则表达式中的贪心模式和非贪心模式
声明:最近发现有人利用我在百度云盘里免费分享的127课Python视频盈利,并声称获得我的授权.在此,我声明,文末百度云盘里的Python视频是免费的,不会授权给任何人或机构进行销售.如果再发现有人卖 ...
- 824 Greedy Mouse
Greedy Mouse 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 A fat mouse prepared M pounds of cat food,ready ...
- 1/22 测试一(STL 模拟 贪心)C.(贪心,给出气球,输出最好成绩)Contest Balloons
1/22 测试一(STL 模拟 贪心) C.(贪心,给出气球,输出最好成绩)Contest Balloons One tradition of ACM-ICPC contests is that a ...
- 列车调度(贪心):单机调度问题贪心算法
单机调度问题贪心算法 #题目:火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...
- 动态规划从理论到实践-深入理解贪心/分治/回溯/动态规划的算法思想
摘要:本文主要讲解常见的四种算法,分别为贪心算法:第一步选择最优的走法,算法不能做到全局最优:分治算法:一种处理问题的思想,使用递归来实现:回溯算法:我们枚举所有的解,找到满足期望的解,可以把求解过程 ...
- php自动排课贪心算法,关于贪心法的排课算法.pdf
25 3 V o . 25 No. 3 2005 5 J ourna of Y unnan Norm a Universit y M ay 2005 * 梁 立, 陈玉华, 徐 敏 ( , 65009 ...
- POJ3614防晒霜 这个贪心有点东西(贪心+优先队列)
这个题是说有C头牛去晒太阳,带了L瓶防晒霜,每瓶防晒霜都有一个SPF值(每瓶防晒霜都能解决一个最短路 ) 每头牛给出了他可以接受防晒霜的上限,和下限,每种防晒霜都给出了SPF值与数量. 从防晒霜的sp ...
- [贪心] aw3686. 移动序列(贪心+模拟+思维)
文章目录 1. 题目来源 2. 题目解析 1. 题目来源 链接:3686. 移动序列 2. 题目解析 贪心. 顺序统计相邻两个 1 之间的 0 的个数即可. 时间复杂度:O(n)O(n)O(n) 空间 ...
最新文章
- 0基础JavaScript入门教程(一)认识代码
- (转载)封装bilibili播放器,自定义边下边播和缓存功能
- php编写猜拳游戏,Python中猜拳游戏与猜筛子游戏的实现方法
- 算法的优缺点_机器学习算法优缺点 amp; 如何选择
- 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp
- Java增强之并发编程
- 【BZOJ4547】【HDU5171】小奇的集合,暴力+矩阵乘法
- con 元器件符号_protues的元件符号名称
- phpspider 简单用法和学习,分类一对多爬取数据
- jike2021总结
- python电影推荐系统_电影推荐系统---协同过滤算法(SVD,NMF)
- 滴滴出行小程序体积优化实践
- 如何使用微信开发者工具查看Appid以及SECRET
- 苹果笔记本上网很慢怎么回事?macbook无线上网慢的解决方法
- 过敏性鼻炎、感冒、哮喘
- Mac电脑环境变量设置方法及常见环境变量说明
- google paly 应用推广 发送渠道广播
- 浏览器插件之ActiveX开发
- JavaC#实现账号登录、账号注册、修改密码、账号注销等功能
- 属性选择器、结构伪类选择器、伪元素选择器