【HDU 1009】FatMouse' Trade
Description
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
Input
Output
Sample Input
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
Sample Output
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,u;
double m,ans;
struct room
{
double j,f,p;
} r[];
int cmp(room a,room b)
{
return a.p>b.p;
}
int main()
{
while(scanf("%lf%d",&m,&n)&&n!=-&&m!=-)
{
for(int i=;i<n;i++)
scanf("%lf%lf",&r[i].j,&r[i].f),
r[i].p=r[i].j/r[i].f;
sort(r,r+n,cmp);
u=ans=;
while(m&&u<n)
{
if(r[u].f>m) ans+=m*r[u].p,m=;
//剩下的猫粮不够把这个房间的咖啡豆换过来,那就能换多少换多少
else ans+=r[u].j,m-=r[u].f;
//够的话,这间房子全部咖啡豆换过来
u++;
}
// while(m>=r[u].f&&u<n) //换种写法
// {
// ans+=r[u].j;
// m-=r[u].f;
// u++;
// }
// if(u!=n) ans+=m*r[u].p;
printf("%.3lf\n",ans); }
return ;
}
【HDU 1009】FatMouse' Trade的更多相关文章
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- 【HDU 5647】DZY Loves Connecting(树DP)
pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...
- -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】
[把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...
- 【HDU 2196】 Computer(树的直径)
[HDU 2196] Computer(树的直径) 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 这题可以用树形DP解决,自然也可以用最直观的方法解 ...
- 【HDU 2196】 Computer (树形DP)
[HDU 2196] Computer 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 刘汝佳<算法竞赛入门经典>P282页留下了这个问题 ...
- 【HDOJ 1009】 CRB and String
[HDOJ 1009] CRB and String 每组两个串s t 仅仅由小写字母组成 问从s能不能变成t 改变的操作为选一个字符 在后面加上一个与所选字符不同的字符 这样的操作能够做无数次 问能 ...
- 【HDU 5145】 NPY and girls(组合+莫队)
pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...
- HDU 1009:FatMouse' Trade(简单贪心)
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 【hdu 1043】Eight
[题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=1043 [题意] 会给你很多组数据; 让你输出这组数据到目标状态的具体步骤; [题解] 从12345 ...
随机推荐
- jQuery时间轴插件:jQuery Timelinr
前言 这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程.大事件等场景.该插件基于jQuery,可以滑动切换.水平和垂直滚动.支持键盘方向键.经过扩展后可以支持鼠标滚轮事件. ...
- 彻底解决Spring MVC 中文乱码 问题
1:表单提交controller获得中文参数后乱码解决方案 注意: jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 <%@ p ...
- 验证码生成的c语言库
http://www.open-open.com/lib/view/open1324534929968.html
- ArcGis 计算线段长度
void CalcLength(string tmpshp) { var expression = "float(!SHAPE.LEN ...
- 用Swift GestureRecognizer 的几个注意点
最近做了一些关于 GestureRecognizer 的工作 ,随笔记录一些需要注意的点: 1. PanGestureRecognizer (1)在使用时 注意在哪个view添加了 手势识别 self ...
- Android 中调试手段 打印函数调用栈信息
下面来简单介绍下 android 中的一种调试方法. 在 android 的 app 开发与调试中,经常需要用到打 Log 的方式来查看函数调用点. 这里介绍一种方法来打印当前栈中的函数调用关系 St ...
- no.5.print sum
#-*-coding=utf-8-*- for a in range(1,50,1): for b in range(1,50,1): for c in range(1,50,1): if a+b+c ...
- 虚拟现实的三维时态GIS模式研究
- pandas 前后行操作
一.前后行满足条件 问题: 各位老师好,我有一个dataframe 产品 数据1 数据2 A 1 2 B 4 5 C 6 3 我想找出比如这一行数据1>数据2 AND 数据1的上一行3 AND ...
- Ubuntu Navicat for MySQL安装以及破解方案
今天发现Navicat for MySQL有LINUX版本了哈, 开心的说,首先上官网上下载LINUX版本: http://www.navicat.com/download 1. 下载 navicat ...