杭电1009--FatMouse' Trade

杭电ACM OJ 1009 FatMouse' Trade 简单的贪心算法 入门级 翻译好题目就能做出来 FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 82705    Accepted Submission(s): 28651 Problem Description FatMouse 阅读详情
这是一道简单的贪心题,题意为Fatmouse想要尽可能多得守护自己喜欢的JavaBean,所以,i房间得用F[i]d的cat food换得守护J[i]的JavaBean,当JavaBean不足以换的所有时,则根据所有cat food占所需cat food的比例来乘以i房间JavaBean得到实际能够得到的JavaBean。


思路很简单,要用一定的cat food守护尽可能多得JavaBean,必须要房间的JavaBean多并且需要的cat food 少。所以这种涉及两方面因素的贪心,可以通过两方面的比率来判断优先取哪一个。此题应当优先取J[i]/F[i]大的。

FatMouse' Trade

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 41918    Accepted Submission(s): 13938


Problem Description
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
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
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test case is followed by two -1's. All integers are not greater than 1000.
 

Output
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.
 

Sample Input
  
5 3 7 2 4 3 5 2 20 3 25 18 24 15 15 10 -1 -1
 

Sample Output
  
13.333 31.500
 

Author
CHEN, Yue
 

Source
 

Recommend
JGShining   |   We have carefully selected several similar problems for you:   1050  1051  1003  1052  1010 
 
#include<stdio.h>
#include<algorithm>
using namespace std;
struct cat
{
    int j;//javabean
    int f;//cat fod
    double t;
}B[1005];
typedef struct cat cat;
bool cmp(cat a,cat b)
{
    return a.t>b.t;
}
int main()
{
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        int i;
        double sum=0;
        int k=0;
        int xx,yy;
        if(m==-1&&n==-1)
            break;
        for(i=0;i<n;i++)
        {
            scanf("%d%d",&xx,&yy);
            if(yy==0)
                sum+=xx;
            else
            {
                B[k].j=xx;//javabean
                B[k].f=yy;//cat food(搞清字母含义,不然混乱会加错,我交了两遍都是错在字母搞混含义导致出错)
                B[k].t=(double)xx/yy;
                k++;
            }
        }//考虑特殊的当房间不需要cat food时,不需要cat food

        sort(B,B+k,cmp);//进行优先排序
       //需要考虑几种情况,当n=0,时,当m=0时m和n都不为0时。实际上n=0和m不为0并且n不为0可以归为一类
        if(m==0)
            printf("%.3lf\n",sum);//直接输出不需要cat food的JavaBean总和
        else
        {
            int temp=m;
            for(i=0;i<k;i++)
            {
                if(temp<=B[i].f)
                    sum+=B[i].t*(double)temp;
                else
                    sum+=(double)B[i].j;
                temp-=B[i].f;
                if(temp<=0)
                    break;
            }
            printf("%.3lf\n",sum);
        }//n=0和m!=0&&n!=0的情况归为一类
    }
    return 0;
}

ACM竞赛之FatMouse' Trade 贪心法 FatMouse' Trade问题主要是说一只老鼠有M磅猫食,然后在N个房间里面用猫食换JavaBean,房间i中有F[i]磅的猫食来换J[i]磅的JavaBean,而且老鼠可以在一个房间里根据一定比例a%来换取JavaBean. 问:如何兑换,才能使得FatMouse所换取到的JavaBean最多。 立即下载

相关推荐

基于ROS下的安卓手机图像和IMU跑ORB-SLAM3

接之前文章继续,手上没有现成的单目+IMU硬件,但是安卓手机几乎人人都有。因此,本文讲下如何用手机跑ORB-SLAM3的Mono和Mono_Inertial。 1. 手机与PC通信 基于ROS下的信息发布和订阅,手机和PC在一个局域网下进行信息(image和IMU)传输。 手机APK参考了github上的2个开源Android_Camera-IMU和android_ros_sensors,基于ros_java生成安卓APP,下载安装任一个APP到安卓手机,界面分别是这样: 手机和PC连一个无

h_372101的博客 1万+

杭电 ACM 1.3.1

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2878 Accepted Submission(s): 888   Problem Description Fa

听香水榭 527

Blender.粒子效果

Blender.粒子效果 ✦ shift+A新建一个棱角球,细分(之后要分解成许多小颗粒) ✦ 给球添加粒子系统,这时播放粒子会向下掉,力场权重☛重力☛0后,粒子会在球体周围运动 ✦ shift+A添加一个力场,调整力场强度 ✦如果粒子运动太快,我们可以在输出属性中调整时间重映射的原始值 ✦想让粒子在球周围运动而不是发散出去,在物理属性找到力场设置,调整流的大小 ✦S键将球形缩小到看不见 ✦给粒子变添加立方体的形状,在粒子属性里找到渲染选项,将“光晕”改为“物体”,在实例物体中选择新建的立方

weixin_46385629的博客 6669

FatMouse‘ Trade(贪心算法)

原题链接 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean. The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pound

smallrain6的博客 1680

stm32 Can通讯过滤器寄存器设置(实验验证)

起因:在使用stm32单片机can通讯时,参考手册的介绍与寄存器封装有差别,不好理解怎么去设置寄存器。在参考一些代码时,对怎么去设置过滤器还是难以理解。 解决: 在寄存器封装库中,我们发现CAN过滤器设置寄存器封装有CAN1->sFilterRegister[ x ].FR1 和 CAN1->sFilterRegister[ x ].FR2 两个寄存器,其封装如下:type

u013984214的专栏 3288

MRI多序列,多中心数据集预处理--使用FSL-Flirt 配准数据

FLIRT(FMRIB 的线性图像配准工具)是用于线性(仿射)模态内和模态间脑图像配准的全自动稳健且准确的工具。 什么是配准 在这两张图片上,很容易看出它们没有对齐,左边相对右边倾斜,虽然我们人类视觉系统还是能把对应的解剖关系连系在一起,但是我们使用计算机分析时确不能够 因此,我们希望相同的解剖结构对齐,用坐标表示的话,希望他们在相同的坐标上。如下图 对齐这些解剖结构的过程就叫做配准(register) 因此,配准的目的也是使相同的解剖结构在同一个位置,便于分析。可以将CT和MRI配准,看同一结构在两个

Tina姐的博客 1万+

FatMouse‘ Trade(贪心)

摘要:贪心算法,STL容器

qq_63052532的博客 648

在Windows10上安装WSL2

WSL2是微软提供的Windows子系统,允许在Windows 10和11上运行Linux环境,提供更好的性能和兼容性。安装WSL2需要启用WSL功能、更新系统、安装WSL2内核,并设置为默认版本。之后,可以通过Microsoft Store安装Linux发行版,并使用WSL命令启动和管理它们。

howard2005的专栏 5940

FatMouse' Trade

HDU - 1009  肥鼠准备了 M 磅的猫粮,准备和看管仓库的猫交易,仓库里装有他最喜爱的食物 Java 豆。 仓库有 N 个房间。第 i 间房包含了 J[i] 磅的 Java 豆,需要 F[i] 磅的猫粮。肥鼠不必为了房间中的所有 Java 豆而交易,相反,他可以支付 F[i] * a% 磅的猫粮去交换得到 J[i] * a% 磅的 Java 豆。这里,a 表示一个实数。 现在他将这项...

qq_42759455的博客 2697

AS7341可见光谱传感器原理图设计,已量产(光线传感器)

最近在做便携式环境光光谱检测项目时,我们基于 ams 的 AS7341 搭了一套硬件电路 —— 这颗芯片算是业内新一代的光谱传感 IC,8 个可见光通道 + NIR + 闪烁检测的配置,加上 6 路并行 16 位 ADC,数据吞吐能力确实够顶。今天就拆解下这个模块的硬件设计细节,聊聊实际做板时的那些考量点。

不脱发的程序猿 641

黑猫带你学eMMC协议第14篇:eMMC FFU详解(Field Firmware Update)

1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 1、ffu相关寄存器有哪些? 2、如何设置ffu? 3、什么是ffu?是否能够更新旧版本的固件到emmc? 4、ffu配置流程图。 2 什么是FFU 主机下载新的固件到eMMC,下载成功后eMMC将固件安装到设备。 3 相关寄存器/命令 SUPPORTED_MODES [493] FFU_FEATURES [492] 该

黑猫奥利奥的博客 4658

FatMouse' Trade(贪心)

FatMouse’ Trade 题意: FatMouse准备了M磅猫粮,它想和守卫仓库的猫进行交易,因为仓库里有它最爱吃的食物Javabean。 仓库里有N个房间,在第i间房间里有J[i]磅Javabean,需要用F[i]磅猫粮来进行交换。FatMouse不必买在房间里的全部Javabean,他可以给猫F[i]*a%磅猫粮,来换取J[i]*a%磅的Javabean,其中a是一个实数。现在FatM...

百般回首曾经的相遇,留下的只是一缕残忆 2434

OpenCV-Python实战(3)——OpenCV中绘制图形与文本

OpenCV 是一个的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。本文介绍了 OpenCV 提供的与绘制图形和文本相关的函数。在图形方面,我们了解了如何绘制基本图形(直线、矩形和圆形等)以及高级图形(剪裁线、箭头、椭圆和多边形)。在文本方面,我们了解了如何绘制文本以及 OpenCV 库中的所有可用字体。

盼小辉丶的博客 2万+

数学—杭电1009 FatMouse' Trade

http://acm.hdu.edu.cn/showproblem.php?pid=1009 FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 39812    Accepted Submission(

笨鸟 772

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

杭电1009 FatMouse' Trade

/********************************  *    日期:2011-2-7  *    作者:SJF  *    题号:杭电1009  *  题目:FatMouse' Trade  *    结果:AC  ********************************/ #include #include /*int cmp(const void

落日小屋 876

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

杭电 1009 FatMouse' Trade

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 40975    Accepted Submission(s): 13563 Problem Description FatMouse pre

逸疏 903

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

杭电hd 1009 FatMouse' Trade

这是一道类背包问题的贪心算法题,代码写的不是很干练,学习中,一起进步了。 import java.util.Scanner; //类背包问题 public class Hd1009 { public static void main(String[] args){  Scanner sc=new Scanner(System.in);    while(sc.hasNext()){

Zhongyou2010的专栏 560

杭电 1009 FatMouse' Trade

http://acm.hdu.edu.cn/showproblem.php?pid=1009

u012766950的专栏 704

『杭电1009』FatMouse' Trade

Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean. The warehouse has N rooms. The i-th room cont...

漠宸离若的博客 358

杭电ACM 1009:FatMouse' Trade

原创作品 转载请注明出http://blog.youkuaiyun.com/always2015/article/details/47747077这一道题意思就是老鼠用猫食物换取自己最喜爱的食物javaBean的过程,当然换取的最终结果是保证最后的JavaBean是最多的,而且是当自己手中的猫食物小于每个仓库所需交换的猫食物时候,可以手中有多少就交换多少。所以在解这道题时候要想到按照每个仓库javaBean最大

去实验室,奔跑吧 7067

【杭电1009】FatMouse' Trade

#include<stdio.h> #include<algorithm> using namespace std; struct note { double java; double food; double ratio; } s[1001]; bool judge(note a,note b) { return a.ratio>b.ratio; } int

better_space的博客 367

杭电1009-FatMouse' Trade

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33442    Accepted Submission(s): 10862 Problem Description FatMouse p

ecjtu_acm_菜鸟—鱼尾尾 1140

【杭电】[1009]FatMouse' Trade

计算单位价值之后排序就好 需要注意若物品“免费” 则可以直接把其重量加入sum

BoilTask Talk Show 472

杭电OJ hdu1009 FatMouse' Trade

仅作为水题学习记录,转载随意,欢迎大神们拍砖 oj地址http://acm.hdu.edu.cn/showproblem.php?pid=1009 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse conta

Yilo的博客 775
上一篇: poj3040 Allowance——贪心
下一篇: Codeforces Round #FF (Div. 2) A.DYZ Loves Hash
不如烂笔头
博客等级 码龄13年 8粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值