贪心老鼠的交易

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基本贪心问题之 硕鼠的交易相关推荐

  1. 贪心练习——肥鼠的交易

    题目描述:这是属于部分背包问题,一老鼠有M斤猫粮,要拿去和猫交换鼠粮,不同的猫咪兑换标准不一样,求老鼠用自己的猫粮如何能尽可能的换到更多鼠粮?输入数据包括多组样例,第一行是两个整数,M和N,M代表鼠拥 ...

  2. TKO 2-4基本贪心之求最小数字 3183

    问题描述 琪琪喜欢旅行.有一天她找到了一盏魔法灯,可惜灯里的精灵没那么亲切.琪琪必须回答一个问题,然后精灵就会实现她的梦想之一. 问题是:给你一个整数,你可以删除确切的m位.左数字将形成一个新的整数. ...

  3. TKO 2-5 贪心算法之稳定排序2 基本素质2093

    Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错 ...

  4. TKO 2-2需要考虑周全的贪心问题--田忌赛马

    Problem Description Here is a famous story in Chinese history. "That was about 2300 years ago. ...

  5. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  6. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  7. Too Many Segments CF595D 贪心乱搞

    传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...

  8. Roundgod and Milk Tea 贪心

    这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...

  9. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

最新文章

  1. python 虚拟现实_虚拟现实 | MOOC中国 - 慕课改变你,你改变世界
  2. httpHandlers使用和问题
  3. 前端 python java三者哪个比较容易就业_前端和后端(Java)开发哪个难?,哪个学习容易一点?...
  4. 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区
  5. 懂球帝 X 七牛云:纯粹有趣的足球遇上简单可信赖的技术
  6. mysql 分区索引失效_分区表的本地索引竟然失效了——ORA-01502
  7. 鸿蒙空间是什么星辰变,飞升之后做什么《星辰变》神魔妖界收伏奇珍异兽
  8. numpy ndarray 数组对象
  9. 推荐模型之:跨会话信息感知的推荐模型探索与实践
  10. C#中调用Windows API的要点 .
  11. Devexpress GridView 提交焦点列
  12. mysql 认证介绍,MySQL认证介绍 (转帖)
  13. 制作rpm包的过程可能会遇见的一些问题
  14. maven文件彻底修改名字 Java文件修改名字
  15. DOS、DOS攻击、DDOS攻击、DRDOS攻击
  16. 手机软件开发入门 [转]
  17. [编程题]:n头牛中选择满足所有m种特性的牛(百度2021)
  18. 网站流量统计分析系统-01
  19. mesh 协调器 路由器_双模网络协调器、双模路由器和双模mesh组网系统的制作方法...
  20. ppt转html java_poi ppt转换为html,实现在线预览

热门文章

  1. Pyqt phonon的使用
  2. Java程序员,15家面试,几个offer , 我的面试历程!
  3. 处理爬虫是返回setCookie的一段js获取acw_sc__v2的方法
  4. 【堡垒机】第9章——堡垒机后台处理批量任务
  5. python 拼接图片_python使用PIL剪切和拼接图片
  6. 关于数据库主键和外键,索引
  7. 百度之星 题一 洞穴
  8. 哥氏方程的数学推导与加速度合成定理
  9. android9启动器,CircleLauncher-环形启动器 安卓版v9.0.9-PC6安卓网
  10. [JSOI2019]节日庆典