深夜过桥,一大家子提一盏灯,众人过桥的速度不一样,小明1秒,弟弟3秒,爸爸6秒,妈妈8秒,爷爷12秒。要求:
(1)过桥必须提灯;
(2)一次最多过2人;
问全部安全过桥至少要多少秒?
很多人往往认为应该由小明持灯来来去去,这样最节省时间,但这不是最优解。但是换个思路,我们根据具体情况来决定谁持灯来去,只要稍稍做些变动即可:第一步,小明与弟弟过桥,小明回来,耗时4秒;第二步,小明与爸爸过河,弟弟回来,耗时9秒;第三步,妈妈与爷爷过河,小明回来,耗时13秒;最后,小明与弟弟过河,耗时4秒,总共耗时30秒!
分析:
  1. 五个人总共是4去3回,由小明来来回回仅能够保证“3回”的最小。很显然在当前条件下,最优解并不是仅满足“3回”最小就够了。
  2. 将其中的最大值12与第二大值8作为“4去”之一。就能减少8秒,当然这样做是需要牺牲“3回”来作为代价的。即8和12同时过去没有可以回来的较小值,因此必须提前预留第二小的弟弟作为“3回”之一。
  3. 同时弟弟还要在过去一次,因此是否改变“4去三回”取决于2*弟弟(第二小)与妈妈(第二大)间的大小