描述
n 個人過河,河上有 m 座 連續 的獨木橋,為了安全起見,每座獨木橋在同一時間內只能上乙個人,求所有人到達河對岸的總用時。
輸入
只有一組案例。
第一行包含兩個正整數 n 和 m,分別表示人的數量和獨木橋的數量。(1 <= n,m <= 1e5)
接下來是 m 個數字,第 i 個數字表示通過第 i 座獨木橋所需要的時間,對於每個數字 x 都有 1 <= x <= 1e5。
輸出
輸出乙個長整數,表示所有人到達河對岸的總用時,然後換行。
樣例輸入
2 31 2 3
樣例輸出
9
#include
#include
//algorithm為了使用max函式
using
namespace std;
intmain()
cout << end << endl;
return0;
}//n=2 m=3
//t1=1 t2=2 t3=3
//si表示通過第i座橋的第乙個人花的時間
//ei表示通過第i座橋的最後乙個人花的時間
//第 0 1 2 3 座橋
//p1: s0=0 s1=s0+t1 s2=s1+t2 s3=s2+t3
//p2: e0=0 e1=max(e0+t1,s0+n*t1) e2=max(e1+t2,s1+n*t2) e3=max(e2+t3,s2+n*t3)
e0+t1表示前面橋的時間比後面橋大
s0+n*t1表示前面橋的時間比後面橋小
過河問題(ACM
描述 在漆黑的夜裡,n 位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩人同時過橋,所需要的時間就是走得比較慢的那個人單獨行動時所需的時...
青蛙過河問題
青蛙過河是乙個非常有趣的智力遊戲,其大意如下 一條河之間有若干個石塊間隔,有兩隊青蛙在過河,每隊有3 只青蛙,如 圖 10 19所示。這些 青蛙只能向前移動,不能向後移動,且一次只能有乙隻青蛙向前移動。在移動過程中,育蛙可以向 前面的空位中移動,不可一次跳過兩個位置,但是可以跳過對方乙隻青蛙進入前面...
貪心過河問題
過河問題 時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 ...