火车运煤问题

题目:

煤矿有 3000 吨煤要拿到市场上卖,有一辆火车可以用来运煤,火车最多能装 1000 吨煤,且火车本身需要烧煤做动力,每走 1 公里消耗 1 吨煤,如何运煤才能使得运到市场的煤最多,最多是多少?

分析:

设出发点为 A ,终点为 B,火车一定不能一下子就从 A 跑到 B,这样就 B 时刚好什么也没剩下。到中点也不行,因为到中点后再回到 A,刚好把自己带的煤全部用完,只烧煤不干活!那到底要走多远返回合适呢?

我们可以倒着推理,最后一次火车到 B 点的最好情况是火车从 A B 之间的某点带 1000 吨煤出发,除去路上消耗的,剩下的都可以运到 B 点。

那 最后这 1000 吨煤应该从哪里出发呢?肯定是从 2000 吨煤过来的,为什么是 2000 吨而不是别的数字呢?别的数字当然也可以,但是可能比较复杂, 2000 吨这个数字比较特殊,刚好是火车运量的 2 倍,刚好是个很完整的数。问题就变成,2000 吨煤中消耗 1000 吨最多能走多远,我们知道,2000 吨用火车需要出发 2 次,加上中间返回的那次,一共 3 次(最后一次出发后不用返回了),也就是消耗的 1000 吨煤火车跑 3 次,能跑多远,1000/3 米。

同理,那 2000 吨应该从起点出发,是从 2000 吨转化而来的,这回运 3000 吨火车需要出发 3 次,加上返回的 2 次,一共 5 次,消耗 1000 吨煤火车跑 5 次,能跑 200 米。

综上,火车最后一次出发是从离起点 200+1000/3 米处出发,到 B 点还有 1000 - (200+1000/3) 米,耗煤也是这么多吨,所以到 B 点还剩 200+1000/3 吨煤。

当然,正向推导也是可以的,这是个分段函数,从起点向终点推也行,这里不再细说,有兴趣的请自行网上搜索。

时间: 2024-08-09 23:53:01

火车运煤问题的相关文章

类Runtime和火车运煤问题

1 类Runtime 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接.可以通过 getRuntime 方法获取当前运行时. 应用程序不能创建自己的 Runtime 类实例. 2 火车运煤问题 问题来源:http://coolshell.cn/articles/4429.html/comment-page-5#comments 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车

经典智力题:火车运煤

题目描述如下: 你是一个煤老板,你在矿区开采了3000吨煤,需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列以煤为动力的火车,这个火车一次最多能运1000吨煤,火车每公里消耗一吨煤.问如何运送才能运最多的煤到集市? ========== -.- ========== 思考时间 ========== -.- ========== 从题中很容易能看出一个矛盾:路程是1000公里,最多运1000吨煤,显然不能直接走.如果直接走的话,不仅没有煤能送过去,而且还会剩下一大堆煤在原地.所以

生活小趣味-火车运煤

周末闲来无事,看到一个很有意思的题目,题目是这样的,假设你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大-每一公里需要耗一吨煤.请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?话说煤老板这年头过的也不是很容易,不过相比程序员来说,还是煤老板享受的机会比我等程序员要好很多~题目看起来很无解,网上也很多人给出了答案和自己的分析过程,能力有限,没有想到最优解

面试题--火车拉煤

题目: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤.请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市? 第一次想法: 第1次:跑250公里,放下500吨煤,剩余250吨煤刚好回去. 第2次:跑500公里,放下250吨煤,剩余250吨回到第1次停车点,拉上第1次停车250吨回到起点,第一次起点250公里处还剩下250吨煤,第二

人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经

转自:http://www.itmian4.com/forum.php?mod=viewthread&tid=3985 首先感谢师兄在两年前发的贴([天道酬勤] 腾讯.百度.网易游戏.华为Offer及笔经面经 ),这篇文章对我帮助很大. 我写这篇文章一是为了感谢这位同是华南理工但素未谋面的师兄,给我推荐这篇文章的炳爷,以及为我解决难题的浩子,羊兄给的项目帮助,洁洁的理解,王兄提供的两个月免费住宿,以及互娱的BOSS,leader,金山的朱先生等人对我择业的帮助,以及所有直接间接帮助过我的人.二是

byr面经两则

人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经 首先感谢师兄在两年前发的贴([天道酬勤] 腾讯.百度.网易游戏.华为Offer及笔经面经 ),这篇文章对我帮助很大. 我写这篇文章一是为了感谢这位同是华南理工但素未谋面的师兄,给我推荐这篇文章的炳爷,以及为我解决难题的浩子,羊兄给的项目帮助,洁洁的理解,王兄提供的两个月免费住宿,以及互娱的BOSS,leader,金山的朱先生等人对我择业的帮助,以及所有直接间接帮助过我的人.二是饮水思源,要把这份活水转赠出去以帮助到更多的人. 我用完之后

挑战无处不在

挑战无处不在 2012年4月17日陈皓发表评论阅读评论33,574 人阅读 面试过一些应聘者,当我问到为什么换工作的时候,他们都会告诉我,现在的工作没有挑战,无聊,所以想换一个有挑战的工作.于是我问了一下他的工作情况,发现那些有挑战的东西他还没有搞懂.我总是为有这样的认识的朋友感到惋惜,因为我总是认为有挑战的东西无处不在啊,不能因为工作上没有,自己就放纵了自己.比如,面试过一个做地图的工程师,他的工作是做计算地图上任意两点的最短或最优路径的一部分功能.我觉得这个事很有挑战,也有难度,应聘者说,没

Java学习笔记——山西煤老板蛋疼的拉车问题

小荷才露尖尖角,早有蜻蜓立上头 --小池 这个问题是这样描述的: 山西煤老板有3000吨煤,要运到1000km公里外的地方卖.他选择使用火车来运煤,每辆火车行驶一公里将消耗一吨煤,且火车载货上限为1000吨. 山西煤老板是个懂代码的家伙,你觉得它最多能拉多少煤过去? 且不论懂代码的人为什么要选择这么蛋疼的方式拉煤..算了,直接把它抽象成数学问题. 山西煤老板的煤总量为amount,总里程为totalTrail,火车载重为load 这类问题存在隐藏条件: 1.假设每辆车都能装满货物,那么amoun

北京有哪些被废弃的地方值得一看?推荐理由是什么?

Will Cao ,...... 156 人赞同 北京游乐园,不知道现在什么样子了,去年的照片 发布于 2013-10-12 72 条评论 感谢 分享 收藏 • 没有帮助 • 举报 • 作者保留权利 846赞同反对,不会显示你的姓名 朱子帅 ,喵嘎大魔王麾下杂役 846 人赞同 先说好,下面这些图都是组员自己拍的.纯引用一下.早年间的豆瓣不能贴图,大家都是放相册链接的.感谢著名组员宋燕这我必须祭出豆瓣神组:北京废墟探险团小组至于可去的地方就多了...不过坊间流传的北京第一烂尾废墟沃德兰游乐园和北