hdu1009(简单贪心)
2016-04-10 01:46
639 查看
题意:一共有n个房子,每个房子里有老鼠喜欢吃的javabeans,但是每个房间里的javabeans的价格不一样。老鼠用m元,问m元最多可以卖多少javabeans,其中每个房间里的javabeans可以被分割。
思路:要想得到的最大值,应该从食品的单价最大的开始,先按食品单价从小到大排序然后逐一购买,直到钱花光;
代码:
思路:要想得到的最大值,应该从食品的单价最大的开始,先按食品单价从小到大排序然后逐一购买,直到钱花光;
代码:
#include<stdio.h> #include<algorithm> using namespace std; struct node{ double x,y; }map[1005]; bool cmp(node a,node b) { return a.x/a.y>b.x/b.y; } int main() { int n,m; while(~scanf("%d%d",&m,&n)) { if(n==-1&&m==-1) break; int i,j; for(i=0;i<n;i++) scanf("%lf%lf",&map[i].x,&map[i].y); sort(map,map+n,cmp); double s=0; for(i=0;i<n;i++) { if(m>=map[i].y) { s=s+map[i].x; m=m-map[i].y; } else { s=s+map[i].x/map[i].y*m; break; } } printf("%.3lf\n",s); } }
相关文章推荐
- [LeetCode]259. 3Sum Smaller
- WordPress 迈向 Markdown 的脚步
- 【九度OJ】题目1111:单词替换
- 安卓的主要几大布局
- IO多路复用之epoll(二)
- tab选项卡
- javascript for循环条件 2个条件和 3个条件的区别
- 如何获取进程/目标对象的全路径?
- maven查找依赖方法
- 【1】mysql系统级操作
- frame和iframe的使用与总结
- C++ 进阶必备
- 第一次接到的任务
- Devik 进程,linux 进程,线程的区别
- 实时应用监控平台cat——服务器启动流程(一)
- 异步读
- swift控制流
- 欢迎使用CSDN-markdown编辑器
- WebRTC视频流渲染中插入图片帧
- YouKu iOS笔试题二