【贪心】老鼠和猫的交易
来源:互联网 发布:sqlserver企业管理器 编辑:程序博客网 时间:2024/04/28 09:17
有一只老鼠很喜欢奶酪,但是奶酪被分别放在N个房间里,而且这些房间都有一只猫咪看守,现在它准备和猫咪们做个交易。它有M磅的猫食,想用这M磅猫食换取奶酪。在猫咪看守的每一个房间里有奶酪J[i]磅,同时猫咪需要F[i]磅的食物,如果老师给猫咪F[i]*a%的猫食,那么它就可以得到J[i]*a%的奶酪。现在已知每只猫咪对猫食的需求量和每个房间的奶酪数,那老鼠怎样才能换得最多的奶酪呢?
---------------------------------------------------
第一行输入参数M和N,后面跟N行(每个房间的奶酪数和猫食的需求量)。在输入M和N为-1和-1时程序终止。
----------------------------------------------------
分行输出老鼠得到的最多的奶酪数,保留三位小数。
----------------------------------------------------
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
-----------------------------------------------------13.333
31.500
#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#include <string>using namespace std;struct Node{double j,f,p;}a[10005];int cmp(Node x,Node y){return x.p>y.p;}int main(){int m;int n,i,j;double sum;while(scanf("%d %d",&m,&n)!=EOF){sum=0;if(m==-1 && n==-1){break;}for(i=0;i<n;i++){scanf("%lf %lf",&a[i].j,&a[i].f);a[i].p=a[i].j/a[i].f;}sort(a,a+n,cmp);for(i=0;i<n;i++){if(m>a[i].f){sum+=a[i].j;m-=a[i].f;}else{sum+=(a[i].p)*m;break;}}printf("%.3lf\n",sum);}return 0;}
1 0
- 【贪心】老鼠和猫的交易
- HDU1009老鼠的旅行 (贪心算法)
- 基础贪心-nefuoj老鼠的旅行
- hdu 1009 FatMouse' Trade(胖老鼠的交易)
- HDOJ 1009 FatMouse' Trade (胖老鼠和猫做生意,贪心)
- 岸上的猫和水里的老鼠
- 做一个机智的胖老鼠(贪心)
- 生日的惊喜-小老鼠老鼠老鼠
- 两个狮子和老鼠的小故事
- 毒药和老鼠的面试题
- 老鼠毒药问题和它的扩展
- 贪心算法胖老鼠问题
- 贪心练习——肥鼠的交易
- uva 11054 Gerovia的酒交易(贪心+树状数组)
- uva 11054 Gergovia的酒交易 等价转化/贪心
- ACM--猫鼠交易--贪心--HDOJ 1009--FatMouse' Trade
- ACM--猫鼠交易--HDOJ 1009--FatMouse' Trade--贪心
- 一只爱上老鼠的猫
- IGMP技术总结
- 关于导入moudle遇到的错误Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found解决办法
- java学习历程(1):编程习惯
- 复选框全选 非全选 失效 jquery checked=true
- javascript定时器,取消定时器,及js定时器优化方法
- 【贪心】老鼠和猫的交易
- 【机器视觉】 单目视觉测距
- 表空间 与 数据文件 脱机的区别
- Android MVP 详解(下)
- 幸福感
- 【Windows DOS】Windows Dos窗口常用命令 -操作手册
- JS常见文本框输入验证【正则表达式】
- Mysql数据库优化
- android动画的几种形式