火车运煤算法--全面解析
2016-07-06 15:21
387 查看
你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大――每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?
这道题一开始看上去好像是无解的,因为你的火车每一公里就要消耗一吨煤,而到目的地有1000公里,而火车最多只能装1000吨媒。如果你的火车可以全部装下,到目的地也会被全部烧光,一丁点也不剩。所以,很多人的第一反应都是觉得这个不太可能。
思考答题是:
装1000吨煤,走250公里,扔下500吨煤,回矿山。
装1000吨煤,走到250公里处,拿起250吨煤继续向前到500公里处,扔下500吨煤,回矿山。此时火车上还有250吨,再加上在250公里处还有250吨煤,所以,火车是可以回矿山的。
装上最后1000吨煤,走到500公里处,装上那里的500吨煤,然后一直走到目的。
大家可能还有更好的方案,请集思广益!!!
这道题一开始看上去好像是无解的,因为你的火车每一公里就要消耗一吨煤,而到目的地有1000公里,而火车最多只能装1000吨媒。如果你的火车可以全部装下,到目的地也会被全部烧光,一丁点也不剩。所以,很多人的第一反应都是觉得这个不太可能。
思考答题是:
装1000吨煤,走250公里,扔下500吨煤,回矿山。
装1000吨煤,走到250公里处,拿起250吨煤继续向前到500公里处,扔下500吨煤,回矿山。此时火车上还有250吨,再加上在250公里处还有250吨煤,所以,火车是可以回矿山的。
装上最后1000吨煤,走到500公里处,装上那里的500吨煤,然后一直走到目的。
大家可能还有更好的方案,请集思广益!!!
相关文章推荐
- NIO DirectByteBuffer 内存泄露的测试
- 探讨如何减少Linux服务器TIME_WAIT过多的问题
- Spring ApplicationContextAware使用方法
- Dubbo源码分析系列1---Dubbo异步通信
- Dubbo源码分析系列2---Dubbo异步通信
- 【转】Java Executor框架在多线程应用中的使用
- Introduction to BGP (3)
- jsoup
- iOS9新特性 3DTouch 开发教程全解(含源码)
- lua协同程序实现管道过滤器
- cocos2dx-CCSpriteBatchNode源码分析(VAO+VBO)
- Exchange邮件系统日志查看及管理
- c/c++函数传参 坑死我了
- Android 设计模式 笔记 - 工厂方法模式
- nginx+ftp实现图片的上传与访问
- 华为机试题--9.数字颠倒
- Android开发之自定义控件(二)---onLayout详解
- Codeforces Round #358 (Div. 2) -- B. Alyona and Mex (思路水题)
- 32位jvm还是64位jvm?
- 开发者必备的 Chrome 扩展