手电筒过桥

2021年8月27日 | 分类: 【编程】

【题目】

有四个人要在夜里穿过一条悬索桥回到宿营地。可是他们只有一支手电,电池只够再亮17分钟。过桥必须要有手电,否则太危险。桥最多只能承受两个人同时通过的重量。这四个人的过桥速度都不一样:一个需要1分钟,一个需要2分钟,一个需要5分钟,还有一个需要10分钟。他们如何才能在17分钟之内全部过桥?

【解析】

注意这道题背后有一个条件:手电筒需要有人传递

所以基于时间考虑:
1. 为了传递手电筒的过程最快,让1分钟和2分钟人负责传递手电筒的工作。
2. 为了任务之间等待差最小,让5分钟和10分钟的人一起过桥时时间浪费最小。

于是得到结果:
1. 1分钟和2分钟一起过桥,这样传递手电筒的时间最短。(2分钟)
2. 1分钟返回将手电筒交给5分钟和10分钟的人一起过桥。(1分钟+10分钟)
3. 手电筒需要回到1分钟这边,这时候让2分钟的人送过来。(2分钟)
4. 1分钟和2分钟一起过桥。(2分钟)

这样得到相加的结果是:\(2+(1+10)+2+2\)=17