HDU 1009 FatMouse' Trade(贪心)
来源:互联网 发布:搜图神器软件 编辑:程序博客网 时间:2024/05/16 06:09
http://acm.hdu.edu.cn/showproblem.php?pid=1009
题目大意:
老鼠有M磅猫食 有N个房间 每个房间前有一只猫 房间里有老鼠最喜欢的食品 J[i] 若要引开猫 必须付出相应的猫食F[i] 当然这只老鼠没必要每次都付出所有的F[i] 若它付出F[i]的a% 则得到J[i]的a% 求老鼠能吃到的最多的食物
分析:
老鼠要用最少的猫粮来换取最多的食物 也就是J[i]/F[i]越大越好 所以按照J[i]/F[i]进行降序排列 然后依次用猫粮来 换取食物 当所剩下的猫粮不足以完全换取食物 能换多少是多少就用 剩下的猫粮 * (J[i]/F[i])
AC代码:
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;struct node{// 结构体来存储 j f 和 j/f double j;double f;double s;}a[1005];int cmp(node x,node y){return x.s>y.s;} int main (){int M,N;while (scanf("%d%d",&M,&N)&&(M!=-1&&N!=-1)){memset(a,0,sizeof(a));for (int i=0;i<N;i++){scanf ("%lf%lf",&a[i].j,&a[i].f);a[i].s=a[i].j/a[i].f*1.0;}sort(a,a+N,cmp);double sum=0.0;for (int i=0;i<N;i++){if(M>=a[i].f){sum+=a[i].j;M-=a[i].f;}else{sum+=M*a[i].s;M=0;} if (M<=0){break;}}printf ("%.3lf\n",sum);}return 0;}
阅读全文
0 0
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade (贪心)
- HDU 1009 FatMouse' Trade【贪心】
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade(贪心)
- HDU-1009 FatMouse' Trade 贪心
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade 贪心
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade【贪心】
- HDU 1009 FatMouse' Trade(贪心)
- HDU 1009:FatMouse' Trade【贪心】
- HDU 1009 FatMouse' Trade 贪心
- 贪心 HDU 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade (贪心)
- hdu 1009 FatMouse' Trade 贪心
- HDU 1009 FatMouse' Trade(贪心)
- 最新勒索软件WannaCrypt病毒感染前后应对措施
- Linux安装单机版Spark(CentOS7+Spark2.1.1+Scala2.12.2)
- STL系列之一 deque双向队列
- Ant+Jmeter+Jenkins实现接口测试自动化
- tf.app.run(main=main, argv=[sys.argv[0]])
- HDU 1009 FatMouse' Trade(贪心)
- 深度学习框架Caffe/CNTK/Tensorflow/Theano/Torch的比较
- 林大oj滑雪
- hbase参数配置优化
- NAT(网络地址转换)&&代理服务器
- JAVA中int,string,char之间的互相转换
- 配置强大的vim开发工具
- UpdatePanel 控件--UpdateMode属性
- 编程开发让我快乐