过河问题:
过河问题,A B C D四个人,单独过河分别需要1,2,5,10分钟,最多两个人同时过,并且只有一个手电筒,每次都需要电筒,两人过河按慢的时间算,问最少几分钟?
首先我们列下条件(分别同行)
- 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个人排序,两个两个为一组,第一次,先让组合时间最小的队伍过河,然后在河对岸的人中找到用时最短的人把手电筒带回来。第二次就是第二小的组合,保证组合不变,每次带手电筒的人都是河对岸中,用时最少的人。大概是这么个思路,有待验证。