在漆黑的夜裡,四位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,四個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時通過。如果各自單獨過橋的話,四人所需要的時間分別是1,2,5,8分鐘;而如果兩人同時過橋,所需要的時間就是走得比較慢的那個人單獨行動時所需的時間。問題是,你如何設計乙個方案,讓用的時間最少。
針對上篇演算法題--過橋問題的解析如下
解答其實也容易,能者多勞這四個字就足以形容解答方案了——用時短的人必須要多跑幾趟以便傳遞手電筒。
設這四個人叫做a,b,c,d,他們所需要的時間分別是1,2,5,8分鐘。
第一步:a和b過橋,花費2分鐘。
第二步:a回來,花費1分鐘。
第三步:c和d過橋,花費8分鐘。
第四步:b回來,花費2分鐘。
第五步:a和b過橋,花費2分鐘。
這樣只要花費2+1+8+2+2=15分鐘,下面再來考慮如何用程式來解決這類問題,在寫程式之前還有個細節要考慮下,比如a,b,c,d四個人所需要的時間分別是1,8,9,10分鐘。
方案一第一步:a和b過橋,花費8分鐘。
第二步:a回來,花費1分鐘。
第三步:c和d過橋,花費10分鐘。
第四步:b回來,花費8分鐘。
第五步:a和b過橋,花費8分鐘。
一共要8+1+10+8+8=35分鐘。
方案二這道題對於博主也有點難度,正在每天增加記憶當中,希望可以對大家有所幫助!
貪心演算法一過河問題
一 當人數大於3的時候,分為兩種情況 1.最快的和次快的兩個人過河,最快的人回來,time a 0 a 1 這個時候並不是最快的人直接和最慢的人一起過去,而是最快的那個人等待,讓最慢的人和次慢的人先過去,time a n 1 那麼time這一步執行完就要對n進行 2的操作。time a 0 a 1 ...
演算法之 過河 過橋問題
一 過橋問題 在漆黑的夜裡,四位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,四個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時通過。如果各自單獨過橋的話,四人所需要的時間分別是1,2,5,8分鐘 而如果兩人同時過橋,所需要的時間就是走得比較...
POJ2573 Bridge 經典的過橋問題
曾經遇到過類似的。紀念一下!這題同一時候也是 zoj1877。經典的過橋問題 是有個部落格解說的非常好的 戳這裡挺久曾經。遇到過乙個基本一樣的,那個題目僅僅要求求出 最短時間就可以,如今還有過橋的過程 也要輸出來,一樣的 近期也遇到過乙個 類似的過河的,只是題意類似,是dp的,記得是 cf295c ...