HDU1009
题意:有n个房子,每个房子里都有老鼠喜欢吃的咖啡豆J[i],但是每个房子都有猫看守,老鼠现在手上有M的猫粮。可以用猫粮换咖啡豆,每只猫都有猫粮的要求F[i]。老鼠得到的咖啡豆是J[i]*a% a%=给的猫粮/F[i] 求最多可以得到多少咖啡豆
思路:没看懂英文,所以搜了一下,看见他们说贪心... 其实也就是比例问题,每份F[i]可以换到越多的J[i]越好 , 依着这个思路排序 然后在循环求答案就好了...
代码如下:
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
double K[]; struct jfpoint
{
double J,F;
double K;
}; jfpoint JF[]; bool paixu(jfpoint a,jfpoint b)
{
return a.K>b.K;
} int main()
{
int M,N;
double ans=;
while(scanf("%d%d",&M,&N))
{
double ans=;
if(M<||N<)
break;
for(int i=; i<N; i++)
{
scanf("%lf%lf",&JF[i].J,&JF[i].F);
JF[i].K=JF[i].J/JF[i].F;
}
sort(JF,JF+N,paixu);
for(int i=; i<N; i++)
{ if(M>=JF[i].F)
{
ans+=JF[i].J;
M-=JF[i].F;
//printf("M=%d\t取全部的ans=%.3lf\n",M,ans);
continue;
}
if(M<JF[i].F)
{
ans+=M/JF[i].F*JF[i].J;
M=;
//printf("\nM=%d\t取全部的ans=%.3lf\n",M,ans);
break;
}
//printf("ans=%.3lf\n",ans);
}
printf("%.3lf\n",ans);
}
return ;
}
HDU1009的更多相关文章
- HDU-1009的解题报告
Hdu-1009 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009 题意:Fatmouse准备M磅的猫食,准备与猫守卫仓库有他最爱吃的食品贸易,J ...
- hdu1009 - 贪心
2017-07-14 18:18:31 writer:pprp 介绍:hdu1009 题目介绍,详见hdu1009 代码如下 #include <iostream> #include &l ...
- HDU1009老鼠的旅行 (贪心算法)
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU1009 FatMouse' Trade
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU-1009(简单贪心)
FatMouse' Trade Problem Description FatMouse prepared M pounds of cat food, ready to trade with the ...
- hdu1009 FatMouse' Trade---贪心
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009 题意:一共有n个房子,每个房子里有老鼠喜欢吃的javabeans,但是每个房间里的javabea ...
- HDU1009:FatMouse' Trade(初探贪心,wait)
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containi ...
- OJ题目分类
POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...
随机推荐
- Linux系统自启动脚本
只需编辑/etc/init.d/rc.local文件,在最后加上你的脚本即可.比如:我已经编写了一个脚本shell.sh,存放在/home/mars704/Desktop/ 下面在终端输入 gedit ...
- 使用git管理github上的项目
使用git可以把我们的项目代码上传到github上面去,方便自己管理,如何使用git?觉得是每位程序猿所必需要有的谋生技能,所以在此记录一下自己学会使用的这个过程: 一.需要注册github账号,这样 ...
- Flex对象的Clone & Copy浅析
在flex中有时候会用到ObjectUtil.clone和ObjectUtil.copy方法.下面是官方API的注释. 克隆指定对象,并返回对该克隆的引用.该克隆使用本机序列化技术生成.这意味着在克隆 ...
- onclicklistener到底怎么用?
转载地址:http://blog.csdn.net/dickren123/article/details/7216975 相信很多像我一样的新手学习Android开发会遇到这个问题,通过这几天的归类和 ...
- oracle 将查询到的数据插入表
1. 新增一个表,通过另一个表的结构和数据 create table tab1 as select * from tab2 2. 如果表存在: insert into tab1 select * fr ...
- 創建HTTP 服務器
var http = require('http'); var fs = require('fs'); var server = http.createServer(function(req, res ...
- Java 对字符反转操作。
//把一段字符串反转后大小写互换位置 public class test_demo { public static void main(String[] args)throws Exception { ...
- Chrome调试(debugger)总是进入paused in debugger状态
在通过Chrome浏览器进行web前端开发时,我们会经常用到Chrome自带的debugger工具,但是经常按完快捷键(F12)后,页面会进入 paused in debugger状态,需要点击右上角 ...
- Linux日志
一.Linux 常見的日志文件 /var/log/cron:你的 crontab 排程有没有实际被进行? 进行过程有没有发生错误?你的 /etc/crontab 是否撰写正确?在这个登录档内查询看看. ...
- PayPal 开发详解(一):注册PayPal帐号
1.注册paypal帐号 https://www.paypal.com 2.使用刚才注册的paypal帐号登录3.进入开发者中心 4.登录开发者中心 5.登录 查看我们paypal Sandbox测试 ...