杭电1009

杭电oj--1009 ( FatMouse' Trade )--贪心算法                                       FatMouse' Trade Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, Ja... 阅读详情

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1009

这道题主要用到的是贪心算法,百度百科对这个算法的解释如下http://baike.baidu.com/view/298415.htm

很庆幸这道题没有像百科对贪心算法使用解释的那样复杂,相似于背包问题,这道题仅仅用每次取单位质量价值最大物品的方法来解就可以了。

我的代码如下(用G++编译通过):

#include<stdio.h>
#include<stdlib.h>
#define maxsize 10000
 
struct trade{
	int J;
	int F;
	double value;
} tradeObj[maxsize];

int cmp(const void *a,const void *b){
	struct trade *aa=(trade *)a;
	struct trade *bb=(trade *)b;
	return ((aa->value<bb->value)?1:-1);
}
int main(){
	int M,N,i;
	double totalMount;
	while(scanf("%d %d",&M,&N)!=EOF){
		totalMount=0.000;
		if(M==-1&&N==-1)
			break;
		for(i=0;i<N;i++){
			scanf("%d %d",&tradeObj[i].J,&tradeObj[i].F);
			tradeObj[i].value=((double)tradeObj[i].J)/((double)tradeObj[i].F);
		}
		if(N==0){
			printf("%.3f\n",totalMount);
			continue;
		}
		if(M==0){
			for(i=0;i<N;i++){
				if(tradeObj[i].F==0){
					totalMount+=(double)tradeObj[i].J;
				}
			}	
			printf("%.3f\n",totalMount);
			continue;
		}	
		qsort(tradeObj,N,sizeof(tradeObj[0]),cmp);
		//for(i=0;i<N;i++)
		//	printf("%d %d %f\n",tradeObj[i].J,tradeObj[i].F,tradeObj[i].value);
		i=0;
		while(M){
			if(M>=tradeObj[i].F){
				totalMount+=(double)tradeObj[i].J;
				//totalMount+=tradeObj[i].J;
				M-=tradeObj[i].F;
			}
			else{
				totalMount+=((double)M)/((double)tradeObj[i].F)*((double)tradeObj[i].J);
				//totalMount+=M/tradeObj[i].F*tradeObj[i].J;
				break;
			}			
			i++;	
		}
		printf("%.3f\n",totalMount);
	}
	return 0;
} 

题目给的例子其实不足以成为验证能否AC的条件,综合网友的意见,还必须至少满足下面几个例子

0 4
1 0
9 1
3 0
10 0
14.000

1 0
0.000

5 4
10000 5
2000 2
100 0
300 0
10400.000
另外数据类型用double,应该是考虑到会有大数出现吧。


从零构建C++ Gerber解析器:PCB缺陷检测的核心技术解析 在PCB制造与质量检测领域,设计数据的准确解析是自动化缺陷检测的基础。Gerber文件作为业界最主流的PCB设计交换格式,本质上是RS-274X命令流,描述了走线、焊盘、圆弧等图形对象。理解其语法结构、坐标模型与光圈机制,是开发高效解析器的关键。通过自研C++解析器,可将矢量数据转换为几何层模型,用于短路、断路、间距违规等缺陷的定量检测。相比通用第三方库,自研方案在性能、语义标记和深度集成上更具优势,尤其适用于AOI算法对接、嵌入式离线分析及自定义缺陷分类等场景。本文从解析器的整体架构、RS-274X核心语 阅读详情

相关推荐

杭电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

qq_36523667的博客 1217

杭电OJ——1009题

仓库有 N 个房间。第 i 个房间包含 J [i] 磅 JavaBeans,需要 F [i] 磅猫粮。FatMouse 不必交易房间里所有的 JavaBeans,相反,如果他支付 F [i]*a% 磅猫粮,他可能会得到 J [i]*a% 磅 JavaBeans。然后是 N 行,每行分别包含两个非负整数 J [i] 和 F [i]。输出:对于每个测试用例,在一行中打印一个精确到小数点后 3 位的实数,这是 FatMouse 可以获得的最大 JavaBean 数量。// 按照 J[i]/F[i] 非递增排序。

Wangawf的博客 1172

GEO生信数据挖掘实战:从临床信息提取到多维分组可视化(聚类与PCA)

本文以GSE1297数据集为例,详细讲解了GEO生信数据挖掘中临床信息提取与分组构建的实战流程。通过R语言解析样本元数据,利用字符串处理技术从文本中精准构建疾病与对照分组,并强调使用层次聚类图和PCA图进行可视化验证,确保分组合理性与分析可靠性,为后续差异表达等高级分析奠定坚实基础。

cheese的博客 361

杭电OJ——ACM 1009.FatMouse‘ Trade

肥老鼠换东西,m磅猫食,n间房子,每个房间有J[i]磅JavaBean,对应一个猫守卫需要F[i]磅猫食,可以按比率获取JavaBean,怎样才能获得最大数量的JavaBean。

peng_YuJun的博客 873

CANoe实战:手把手教你用J1939.dbc发送超8字节长帧报文(附完整CAPL代码)

本文详细解析了使用CANoe和J1939.dbc实现超8字节长帧报文的分包发送技术,提供完整的CAPL代码实现与优化策略。内容涵盖J1939.dbc配置、分包发送模块设计、接收端处理逻辑,并与ISO 15765-2协议进行深度对比,帮助开发者构建高效可靠的商用车通信解决方案。

weixin_29169899的博客 393

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录

本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。

qsc901234的博客 333

Codeforces 7A - Kalevitch and Chess 水 (*1300)

#include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cstdio&gt; #include&lt;algorithm&gt; #include&lt;vector&gt; #include&lt;set&gt; #include&lt;map&gt; #include&lt;queue&gt; #include

STOP 399

ESP32固定翼航模硬件设计与飞行力学解析

固定翼无人机是嵌入式控制与空气动力学交叉实践的经典载体,其飞行稳定性本质源于重心、气动中心与控制面的物理耦合关系。理解静稳定度(Static Margin)、升力系数调控、偏航力矩生成等基础原理,是实现可靠姿态控制的前提。在低成本工程约束下,材料刚度、结构弹性与电机-驱动协同设计共同决定了系统动态响应边界。ESP32平台凭借高精度PWM、低功耗双模无线及丰富GPIO,成为教学级航模开发的理想主控;而魔术贴基板、可调电池配重、柔性尾翼等创新结构,则将抽象的飞行力学概念转化为可测量、可调试的实体对象,广泛应用于

weixin_29859471的博客 365

杭电ACM——1009,FatMousesTrade(贪心)

贪心算法。按每个屋子的性价比高低进行排序。即创建一个数组val[]=j[i]/f[i] 特别注意: 1.j[i]=0的情况; 2.f[i]=0的情况; 3.数据的类型。 #include&amp;amp;amp;lt;cstdio&amp;amp;amp;gt; using namespace std; double j[1005],f[1005],val[1005]; //注意,都要定义为浮点型,因为val[]=j[i]/f[i],性价比不...

shamansi99的博客 319

《中国电信运营商骨干网:历史、现状与未来演进》系列 第一篇:中国骨干网全景图:一级运营商与专用网络的演进

揭秘国家信息高速公路!一文读懂什么是骨干网,它如何支撑我们的数字生活,以及电信、联通、移动、广电等巨头如何构建这张“国家级动脉”。

maqh_csdn的博客 2037

TIA protal与SCL从入门到精通(1)——SCL编程入门

SCL语言是由Pascal而生的结构化程序语言,与梯形图相(LAD)比,SCL语言的灵活程度更高,易于编写控制算法。 本教程基于的平台如下 软件:TIA 15.1 CPU 1516 (1)直接创建纯SCL的程序块儿; (2)在LAD/FBD中在插入SCL程序段。 在程序段中直接右击插入即可,但是插入的程序段并不能完全使用SCL语法,GOTO等跳转指令就不能使用。在SCL中一般不能使用绝对地址进...

苦走一口田 7万+

数学—杭电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

《网络安全自学教程》- SQL注入之报错注入原理+步骤+实战操作

这篇文章为大家解析报错注入的实现原理,结合实战案例讲解报错注入的使用步骤。

wangyuxiang946的博客 1万+

杭电1009 FatMouse' Trade

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

落日小屋 876

Python爬虫实战:基于最新技术栈的晋江文学城小说爬取

本文将详细介绍如何使用Python最新技术栈构建一个高效的晋江文学城小说爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、分布式爬虫设计以及数据存储优化等高级话题。文章包含完整的代码实现,使用aiohttp+asyncio实现异步爬取,Playwright处理动态渲染,并结合Redis实现分布式任务队列。本文旨在为读者提供一个全面的现代Python爬虫开发指南。网络爬虫(Web Crawler)是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据分析和内容聚合等领域。

2201_76125261的博客 870

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

杭电1009 FatMouse's Trade

杭电1009http://acm.hdu.edu.cn/showproblem.php?pid=1009 题目大意: 一只肥鼠一开始有M个猫粮,经过N个房间。在每个房间,它可以用F[i]*a%的猫粮去换取J[i]*a%的鼠粮。 由于物品可分割,不能使用背包。 直接贪心,用结构体构造,按照Rate = f / j 这样的最大比例去排序,依次拾取即可。 AC代码: ...

Sensente的博客 287

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

杭电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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

杭电1009(C++)

杭电1009 题目 未能AC代码 #include<iostream> #include<iomanip> #include<algorithm> using namespace std; double rang(float a,float b) { if(a==0) return 100000; else return b/a; } struct room { double a,b; float rang; }; bool cmp(room x,room y

m0_51427295的博客 182

杭电(5)1009.小凯取石子

杭电(5)1009

qq_73881557的博客 1152

杭电oj1009java

贪心算法 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ double m=sc.nextInt(); int n=sc.nextInt(); if (m=...

zhijianggamer的博客 320

杭电acm1009

http://acm.hdu.edu.cn/showproblem.php?pid=1009 贪心算法,以最大方式换得最大猫粮,先求猫粮的“性价比”,然后排序,再按性价比去依次将老鼠换完,得到结果 View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 struct fat{ 4 ...

anccx84886的专栏 129

杭电 1009

#include void bubble_sort( double unit_price[], int groups); double unit_price[1100]; int gross_price[1100]; int amount[1100]; int main() { int weight_of_cat_food; int groups; while(scan

qianmengfusheng的博客 673
上一篇: 杭电1008
下一篇: 杭电1012题
windowsshaking
博客等级 码龄16年 11粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值