题目是说有N个人用一条船过河,船每次最多只能载2人,所以得多次来回穿梭才能将所有人运过河。为了减少所花时间,一般两人一起坐船过河,然后其中较快的一人划回来。
当N = 1,2 时,直接过河;
当N = 3 时,最快的人分两趟将另两人运过河;
当N >= 4 时:因一次可以载两人过河,故可以两人过河看作一个基本单位。每次用最短时间把最慢的两人运过河后,直至剩余人数小于4。设当前N人中最快与次快的两人所用时间分别为a与b,最慢与次慢的两人所用时间分别为z与y。为了让两人过河的时间最短,可以采取两种策略:1. 让当前最快的人分两次把两人运过河,最快的人两次都回来,此时用时为 z + a + y + a = 2a + y + z;2. 让最快的与次快的一块过河,然后最快(或次快)的划回来,接着最慢和次慢的一块过河,达到后让先前到达的次快(或最快)的划回来,此时用时为 b + a + z + b = a + 2b