時間限制:
1000 ms | 記憶體限制:
65535 kb
難度: 5
描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知;而如果兩人同時過橋,所需要的時間就是走得比較慢的那個人單獨行動時所需的時間。問題是,如何設計乙個方案,讓這n人盡快過橋。
輸入第一行是乙個整數t(1<=t<=20)表示測試資料的組數
每組測試資料的第一行是乙個整數n(1<=n<=1000)表示共有n個人要過河
每組測試資料的第二行是n個整數si,表示此人過河所需要花時間。(0
輸出輸出所有人都過河需要用的最少時間
樣例輸入
141 2 5 10
樣例輸出
17
**poj
一般來說,我們一看到這個題,我們第乙個想到的就是,讓最快的和其他人一起過橋,然後最快的那個人來送電筒這個肯定是最快的,其實不一定,如果這樣做肯定出錯,因為題上給的資料就比你這樣做的用時要少,那我們就又該好好想想,怎樣才會更快呢?其實就是讓前兩個想對較快的兩個人先過河,讓最快的來送手電筒,然後讓兩個最慢的兩個人一起過河,然後讓第二快的來送手電筒,然後這兩個快的再一起過河就正好是題上的答案,仔細想想,為什麼會出現這樣的現象呢?這就是因為第二個快的走的時間也比較短,而第二慢的走的時間比較長,所以才會造成這種現象!因為當你讓後兩個一起過河的話倒數第二個人的時間就不用算了,而得計算兩次第二個人的時間,如果第二個人的時間的二倍也比倒數第二個人的小,那就選第二種,否則選第一種!當然又考慮到萬一有5個,6個,7個等等人的話,我們該怎麼辦呢?很簡單,我們以部分的最優來代替整體的最優,我們每次都用最短的時間將最慢的兩個人送過河,然後將剩下的與4進行比較,如果大於4,繼續只當成就4個人用最短的時間把最慢的兩個送過河,如果小於4,則跳出迴圈,執行下面的if語句,if語句包括三種情況,第一種是n==3,這時讓最慢的和最快的一起過河,然後最快的來送手電筒,然後再和第二快的一起過河就都過來河了;如果n==2;兩個人一起過河;如果n==1,直接乙個人過河就行了!(在小於等於3的時候只有這一種情況最省時間,所以不必判斷了)
ny47 過河問題
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述輸入 第一行是乙個整數t 1 t 20 表示測試資料的組數 每組測試資料的第一行是乙個整數n 1 n 1000 表示共有n個人要過河 每組測試資料的第二行是n個整數si,表示此人過河所需要花時間。0 輸出輸出所有人都過河需要用的最...
貪心 過河問題(數學思想) ny 47過河
時間限制 1000 ms 記憶體限制 65535 kb 難度 5描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩人...
ny 47 噴水裝置(一)
噴水裝置 一 時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共...