这是一个比较经典的智力题。我今天看面经遇到了,特地写下思路。

首先我们列下条件。

AB 2分钟

AC 5分钟

AD 10分钟

BC 5分钟

BD 10分钟

CD 10分钟

因为只有一个手电筒,所以必然存在有的人过去了之后又把手电筒拿回来用的情况,从AD,BD,CD的情况来看,必然是以CD的时间来算,因为C比A,B的时间都长,反正无论是谁跟D组合都是10分钟,所以我们选择一个时间最长的。这样一定是CD拿着手电筒过河,然后我们往前推一个下。谁把手电筒拿来的?因为A过河的时间最短,那我们让A把手电筒 拿过来吧,这样CD就拿着A拿过来的手电筒到达了河对岸。此时河对岸有BCD,那么BCD中,B时间最短,那么让B把手电筒拿过去,最后AB再一起过河。所以大概的情况是:

ab 2 去

a 1 返

cd 10 去

b 2 返

ad 2 去

time:2 + 1 + 10 + 2 + 2 = 17分钟。

思考下,K个人过河,同样的规则,方案是首先K个人排序,两个两个为一组,第一次,先让组合时间最小的队伍过河,然后在河对岸的人中找到用时最短的人把手电筒带回来。第二次就是第二小的组合,保证组合不变,每次带手电筒的人都是河对岸中,用时最少的人。大概是这么个思路,有待验证。

标签: none

相关文章推荐

添加新评论,含*的栏目为必填