TKO 2-1基本贪心问题之 硕鼠的交易
贪心老鼠的交易
Problem Description
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
Input
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 J[i] and F[i] respectively. The last test case is followed by two -1’s. All integers are not greater than 1000.
Output
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.
Sample Input
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
Sample Output
13.333
31.500
#include<bits/stdc++.h>
using namespace std;
struct node{
int num1;
int num2;
double avg;
}m[1000];
bool cmp(node a,node b)
{
return a.avg>b.avg;
}
int main(){
int N,M;
double sum1,sum2;
int i;
while(scanf("%d%d",&N,&M)==2&&((M!=-1)||(N!=-1)))
{
sum1=0;sum2=N;
for(i=0;i<M;i++){
cin>>m[i].num1>>m[i].num2;
m[i].avg=m[i].num1*1.0/m[i].num2;
}
sort(m,m+M,cmp); for(i=0;i<M;i++)
{if(sum2>m[i].num2){sum2-=m[i].num2;sum1+=m[i].num1;}else{sum1+=sum2*m[i].num1*1.0/m[i].num2;break;}}
printf("%.3lf\n",sum1);
}
return 0;
}
TKO 2-1基本贪心问题之 硕鼠的交易相关推荐
- 贪心练习——肥鼠的交易
题目描述:这是属于部分背包问题,一老鼠有M斤猫粮,要拿去和猫交换鼠粮,不同的猫咪兑换标准不一样,求老鼠用自己的猫粮如何能尽可能的换到更多鼠粮?输入数据包括多组样例,第一行是两个整数,M和N,M代表鼠拥 ...
- TKO 2-4基本贪心之求最小数字 3183
问题描述 琪琪喜欢旅行.有一天她找到了一盏魔法灯,可惜灯里的精灵没那么亲切.琪琪必须回答一个问题,然后精灵就会实现她的梦想之一. 问题是:给你一个整数,你可以删除确切的m位.左数字将形成一个新的整数. ...
- TKO 2-5 贪心算法之稳定排序2 基本素质2093
Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错 ...
- TKO 2-2需要考虑周全的贪心问题--田忌赛马
Problem Description Here is a famous story in Chinese history. "That was about 2300 years ago. ...
- 算法设计与分析第3章 贪心算法
第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...
- 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...
问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...
- Too Many Segments CF595D 贪心乱搞
传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...
- Roundgod and Milk Tea 贪心
这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...
- 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码
1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...
最新文章
- python 虚拟现实_虚拟现实 | MOOC中国 - 慕课改变你,你改变世界
- httpHandlers使用和问题
- 前端 python java三者哪个比较容易就业_前端和后端(Java)开发哪个难?,哪个学习容易一点?...
- 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区
- 懂球帝 X 七牛云:纯粹有趣的足球遇上简单可信赖的技术
- mysql 分区索引失效_分区表的本地索引竟然失效了——ORA-01502
- 鸿蒙空间是什么星辰变,飞升之后做什么《星辰变》神魔妖界收伏奇珍异兽
- numpy ndarray 数组对象
- 推荐模型之:跨会话信息感知的推荐模型探索与实践
- C#中调用Windows API的要点 .
- Devexpress GridView 提交焦点列
- mysql 认证介绍,MySQL认证介绍 (转帖)
- 制作rpm包的过程可能会遇见的一些问题
- maven文件彻底修改名字 Java文件修改名字
- DOS、DOS攻击、DDOS攻击、DRDOS攻击
- 手机软件开发入门 [转]
- [编程题]:n头牛中选择满足所有m种特性的牛(百度2021)
- 网站流量统计分析系统-01
- mesh 协调器 路由器_双模网络协调器、双模路由器和双模mesh组网系统的制作方法...
- ppt转html java_poi ppt转换为html,实现在线预览
热门文章
- Pyqt phonon的使用
- Java程序员,15家面试,几个offer , 我的面试历程!
- 处理爬虫是返回setCookie的一段js获取acw_sc__v2的方法
- 【堡垒机】第9章——堡垒机后台处理批量任务
- python 拼接图片_python使用PIL剪切和拼接图片
- 关于数据库主键和外键,索引
- 百度之星 题一 洞穴
- 哥氏方程的数学推导与加速度合成定理
- android9启动器,CircleLauncher-环形启动器 安卓版v9.0.9-PC6安卓网
- [JSOI2019]节日庆典