五人灯笼桥游戏怎么过?

先让瘦子和小胖过桥,耗时3秒,总时间3秒(大胖,瘸腿女,不过桥)。

瘦子回来送灯需要1秒,总时间4秒(胖,瘸,姑娘,瘦子,不过桥)。

大胖和瘸子过桥需要12秒,总时间16秒(女生,瘦子,从不过桥)。

小胖回来送灯,耗时3秒,总时间19秒(女生,瘦子,小胖,没过桥)。

瘦子和女孩过桥需要6秒,总时间是25秒(没有过桥的小胖)。

瘦子回来送灯需要1秒,总时间26秒(小胖,瘦子,不过桥)。

瘦子和小胖过桥用时3秒,总时间29秒(都已经过桥)。

扩展数据

首先,他们过河有两条路。一种方式是直接过河,时间最短的人一个一个护送其他人(贪);另一种是两个穿越时间短的人先过去,然后一个回来,然后两个穿越时间长的人过去,然后另一个刚过去穿越时间短的人回来,重复这个过程(动态规划)。

这两种方法应该一起使用。第一个是具有第二快的穿越时间的人的穿越时间比第一穿越时间和第二穿越时间之和小两倍(即,(a [1] * 2

我们先把每个人过桥的时间排序,设第I个人过桥的时间为dp[i]。目前桥边只剩下两个人,分析显示有两种过桥方式。

最快的人回来,带着最慢的人过桥。最快的人再次返回,第二慢的人返回。

DP[I]= 2 time[1]+time[I]+time[I-1]

最快的人回来,让最慢和第二慢的人等着。第二快的人回来了,和最快的人一起回来。

DP[I]= time[1]+min { time[I],time[I-1]}+time[2]+time[2]= time[1]+2 time[2]+time[n