4個人在晚上過一座小橋,過橋時必須要用到手電筒,只有一枚手電筒,每次最多隻可以有兩人通過, 4個人的過橋速度分別為1分鐘、2分鐘、5分鐘、10分鐘,試問最少需要多長時間4人才可以全部通過小橋?
n個人過橋,每個人過橋需要的時間為ti(1<=i<=n).每次最多兩個人過橋,並且還要回來乙個。求最快過橋時間。
輸入:每人過橋時間陣列,人數(陣列元素個數)。
輸出:最快時間。
最佳方案構造:以下是構造n個人(n≥1)過橋最佳方案的方法:
1) 如果n=1、2,所有人直接過橋。
2) 如果n=3,由最快的人往返一次把其他兩人送過河。
3) 如果n≥4,設a、b為走得最快和次快的旅行者,過橋所需時間分別為a、b;
而z、y為走得最慢和次慢的旅行者,過橋所需時間分別為z、y。那麼
當2b>a+y時,使用模式一將z和y移動過橋;
當2b<a+y時,使用模式二將z和y移動過橋;
當2b=a+y時,使用模式一將z和y移動過橋。
這樣就使問題轉變為n-2個旅行者的情形,從而遞迴解決之。
……
a z →
a ←
……也就是「由a護送到對岸,a返回」,稱作「模式一」。
……
……
第n-2步: a b →
第n-1步: a ←
第n步: y z →
第n+1步: b ←
……這個模式是「由a和b護送到對岸,a和b返回」,稱作「模式二」。
**:
演算法之 過河 過橋問題
一 過橋問題 在漆黑的夜裡,四位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,四個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時通過。如果各自單獨過橋的話,四人所需要的時間分別是1,2,5,8分鐘 而如果兩人同時過橋,所需要的時間就是走得比較...
每日一題 過橋問題
問題描述 今天偶然在 讀者 上看到了益智問題 試著解了一下,感覺還是很有意思,google了一下,晚上都說是微軟面試題,但是我找了找,在 how to slove it 這本書中就有提到。不知道是誰cp的誰的。好吧,說說問題 u2合唱團在17分鐘內得趕到演唱會,途中必須經過一座橋,4個人從橋的同一端...
過橋問題 馬兒賽跑問題 智力題
有a b c d四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1 2 5 10分鐘,只有一支手電,並且同時最多只能兩個人一起過橋。請問,如何安排,能夠在17分鐘內這四個人都過橋?第一趟過去 兩人 花1分鐘和2分鐘的人 總共耗時 2分鐘 第一趟過來 一人 花1分鐘的人 總共耗時 3分鐘 第二趟過...