hdu 1009 FatMouse' Trade
2015-07-17 14:28
423 查看
根据题意我们可以知道,FatMouse可以只买仓库里的一部分,而不用全部买完,那么显然,我们利用贪心的思想,找到单位价值最高的仓库,买这个仓库内的东西显然是最划算的,那么我们根据单位价值从大到小排序,线性的扫一遍就好了。
#include <cstdio> #include <algorithm> #include <iostream> using namespace std; struct node { int a,b; double c; }f[10003]; double cmp(node q,node w) { return q.c>w.c; } int main() { int m,n; while (scanf("%d%d",&m,&n)!=EOF) { if (n<0) break; for (int i=0;i<n;i++) { scanf("%d%d",&f[i].a,&f[i].b); f[i].c=f[i].a*1.0/f[i].b; } sort(f,f+n,cmp); double ans=0; for (int i=0;i<n;i++) if (m>f[i].b) {ans+=f[i].a; m-=f[i].b;} else {ans+=m*f[i].c; break;} printf("%.3f\n",ans); } return 0; }
相关文章推荐
- 问题-delphi 调试(F8)错行处理
- nodejs学习笔记_nodejs和PHP在基础架构上的区别--共享状态的并发
- Xcode更新后,第三方插件不能用的问题解决方法
- 静态方法的线程安全
- HDU-5280
- Mommy, I found it!, 15 Awesome Linux Find Command Examples
- 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
- Exclusive access
- php程序员绝不能违背的安全铁则
- maven 两条命令建立 web项目
- 线程池与ThreadPoolExecutor学习笔记
- jni 简介
- Android的LinearLayout.getLayoutParams().width 和 LinearLayout.getWidth() 的区别
- Scroller相关类使用大揭秘!!!
- 【socket】TCP 和 UDP 在socket编程中的区别
- 双机\RAC\Dataguard的区别
- syscall参数表
- 转载 httpclient 上传、下载文件
- android studio 的使用
- mySQL中replace的用法