这是转载的一篇文章,该blog作者认为这个问题可以测试一个人的编程的潜力,其实这样说合理与否并不是很重要,重要的是我觉得从中要得到的一个主要收获是:面对习以为常的一些方法或者结论的时候,不要轻易的放弃重新思考的机会,因为里面可能还包含一些你以前从未发现过的东西可以挖掘,说不定这就是个“创新”的机会。当然要做到这一点的一个前提条件是,你要敢想,切实抛去偏见,认真深入思考:)
题目
天黑,雨,四人欲过一座桥.桥破旧,每次最多能容两人同时通过.且只有一支手电(过桥必须用手电 ).
甲单独过桥需1分钟,乙需2分钟,丙需5分钟,丁需7分钟 .
则四人全部通过的最短时间是多少 ?
1\ 如果甲可以背着其他人一起过桥的话,甲分别背乙背丙背丁=1+1+1+1+1=5分钟{注:来回也要1分钟啊 }
2\甲和丁一起过桥需要7分钟,甲再回头需要1分钟,再带乙,然后丙。最后应该是7+1+5+1+2=16分钟吧?
3\ 甲和丁先过 丁拿手电 甲过剩6 后乙过 丁剩4 后丙过丁一直拿手电 共用8分
4.1\ 甲在这边照着,先乙、丁过,乙过之后丁还有5分钟,接着丙上桥,丙丁通过过了桥,最后甲自己过。7+1=8分钟。
4.2\ 先让最后一个和第一个先走,算好一分钟后第二个走,再过两分钟后第三个就可以上路了。最后答案是8分钟 !
5.1\先是甲和乙过,甲过来马上反回送手电,再让丙和丁过,丙到马上让乙送手电,在甲和乙过
这样就是 2+7+2=11(2+1+7+2+2=14)
5.1\
1,2 GO
1 RET
7,5 GO
2 RET
1,2 GO
2+1+7+2+2=14
5.2\
人物 行程 所需时间
=========================
甲、乙 过桥 2分钟
甲 返回 1分钟
丙、丁 过桥 7分钟
乙 返回 2分钟
甲、乙 过桥 2分钟
2+1+7+2+2 = 14 分钟
5.3\ 先是A+B走桥,需要2分钟;然后让B送手电回来,需要2分钟;在由C+D过桥,需要7分钟;在由A走回来,需要1分钟;然后A+B在过桥,需要2分钟。
2+2+7+1+2=14
1+2 ->
<- 1
7+5 ->
<- 2
1+2 ->
倒,too old:) 14,标准答案!over
6\ 应该是0分钟,因为谁也没有过去,都掉进桥下了 .
因为那个桥只能承受两个人的重量,而又必须拿手电,两个人拿上手电大于两个人的重量,所以超重,掉进河里了:).