题目内容:
你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?

这道题一开始看上去好像是无解的,因为你的火车每一公里就要消耗一吨煤,而到目的地有1000公里,而火车最多只能装1000吨媒。如果你的火车可以全部装下,到目的地也会被全部烧光,一丁点也不剩。所以,很多人的第一反应都是觉得这个不太可能。

如果你一开始就觉得不太可能的话,这是很正常的。不过我不知道你还会不会继续思考下去,如果你不想思考下去了,那么我很为你担忧,因为你可能并不是一个不善于思考的人,而是一个畏难的人,还有可能是一个容易放弃的人。这对于你做好 一个需要大量思考的工作的程序员来说可能并不适合。

看完上面一段话,就想靠自己思考得出结论,结果昨晚上想着想着睡着了,然后今天就继续进行思考。哎,说来惭愧,想了好久也没有找出最佳答案。最后只有上网求助。看了好多答案也没看明白。最后终于想到了一个我能理解的解释,现在严重怀疑自己适不适合做程序员。

解决思路:
因为要运送最多的煤到集市,所以要把所有的煤都给运走。火车运送的上限是1000吨,所以需要运送3000/1000 = 3 次。前两次的运送肯定不是运送到终点,而是把煤放到一个中间点,然后最后一次进行运送时把所有的煤运到终点。如下图所示:

要运送最多的煤到B点,则需要在N点时,可以装载1000吨的煤,所以剩余的煤为 1000 - (X+Y),就求x+y的最大值。

先看一下在A点时,当A向B方向出发时,火车是满载的。当从B的方向回到A点时,A的煤恰好应该是消耗完的。

在看一下M点,在第一次到达M是,火车消耗掉x吨煤,卸掉1000 - 2x吨煤,返回到A点消耗x吨煤。中间怎么操作好好几种操作,就不用考虑了,直接看最后一次到达M时,现在火车上应该有1000-x吨煤,M点还剩x吨煤,这样从M点出发时又会是满载了。

在看一下N点,在第一次到达时,火车消耗掉了x+y吨煤,卸掉了不知道多少煤,因为有可能在M点进行补充,返回消耗了x+y吨煤。第二次来时加上剩余的量应该为1000吨。

上面就可以看成消耗2000吨煤,把剩余的1000吨煤,从A点运到N点,即5x + 3y = 2000。以此类推就可以看成消耗1000吨煤把M点的煤运到N点,即 3y = 1000。同理5x = 1000。

求得 x + y = 533

感谢大家,我是假装很努力的YoungYangD(小羊)

火车运煤问题(马车运草)问题相关推荐

  1. 火车运煤(骆驼运胡萝卜)问题的最优解

    题目来源,http://coolshell.cn/articles/4429.html, 原始题目是这样的,你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1 ...

  2. 由火车运煤问题想到的

    Technorati 标签: 面试题, 火车运煤 本文版权所有,转载请注明出处和作者联系方式. 作者:孙华明 联系方式: wormsun at gmail.com 今天在酷壳网站上看到一道面试题--火 ...

  3. 经典智力题:火车运煤

    题目描写叙述例如以下: 你是一个煤老板.你在矿区开採了3000吨煤,须要运送到市场上去卖,从你的矿区到市场有1000公里.你手里有一列以煤为动力的火车.这个火车一次最多能运1000吨煤,火车每公里消耗 ...

  4. 关于火车运煤的一些想法

    火车运煤也是个经典的问题了.它的定义如下: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨 ...

  5. 《火车运煤问题》分析

    作者:陈太汉 <火车运煤问题>分析 题目内容: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多 ...

  6. 火车运煤问题 - 增加一个简单算法实现

    火车运煤问题 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大--每一公里 ...

  7. 几个程序员面试题:火车运煤问题、赛马问题

    火车运煤 这个可能是一个比较经典的智力题了,和以前的那个<赛马问题>很相似,其题目如下: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000 ...

  8. 面试题:火车运煤问题

    面试题:火车运煤问题 来源:http://www.xymyeah.com/165.html 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手 ...

  9. 一道面试题:火车运煤问题

    这个可能是一个比较经典的智力题了,和以前的那个<赛马问题>很相似,其题目如下: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手 ...

  10. 也谈《火车运煤》问题

    今日在酷壳看到一篇比较经典的<火车运煤>的智力题 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最 ...

最新文章

  1. android 滑动模糊渐变,Android UI效果实现 滑动模糊渐变效果实现
  2. 如何手动生成Dump文件并分析Dump文件
  3. java数据库设计工具_Java课程设计---创建数据库工具类
  4. android listView的setOnScrollListener的使用
  5. ipad4没有声音提示消息
  6. 百万级数据库优化方案[转载]
  7. 南京信息工程大学c语言实验十报告,南京信息工程大学2014年C语言程序设计实验内容(全部).doc...
  8. android自定义游戏闯关图,Android自定义View(四) -- Canvas
  9. 保护视力,我写的一个定时提醒的小玩意。
  10. 微信企业号-根据code获取成员信息(过期code)
  11. powerquery加载pdf_PowerQuery技巧之自学教程
  12. asp.net oracle 分页,asp.net教程之利用ASP实现Oracle数据记录的分页显示
  13. 【Java 基础】枚举、包装类、Math、Radnom、UUID、格式化、DecimalFormat、高精度计算(BigDecimal)
  14. CSS光标属性一览表
  15. [ 原创 ]学习笔记-安卓虚拟机终于达到最佳状态了
  16. wordpress快速删除垃圾评论和关闭评论
  17. n*m的格子中正方形个数和长方形个数
  18. 感悟大学一年的成长经历
  19. [比赛|考试] 咕咕掉的一些比赛总结
  20. 性能监控工具-操作系统性能监控

热门文章

  1. 两个经纬度偏角_怎么根据两个经纬度计算出航向
  2. SQL Server 、SQLiteSpy、Access对应数据库后缀名分别是什么?
  3. 怎么找到当地供应商_微商怎么找一手货源供货商(微商新手必看教程)
  4. python ip地址转换
  5. 逊哥dp专题 总结(普通dp,斜率优化dp,数位dp)
  6. 现代版的———项链 :(  转
  7. TWebLive基于TRTC和IM实现web群直播
  8. 教你画架构图,看一次就会了
  9. 女生可以做软件测试吗?
  10. 09——规范数据库设计