時間限制: 1 sec 記憶體限制: 128 mb
提交: 36 解決: 27
[提交][
狀態][
討論版][命題人:外部匯入][
edit] [testdata] [
同步資料]
farmer john以及他的n(1 <= n <= 2,500)頭奶牛打算過一條河,但他們所有的渡河工具,僅僅是乙個木筏。
由於奶牛不會划船,在整個渡河過程中,fj必須始終在木筏上。在這個基礎上,木筏上的奶牛數目每增加1,fj把木筏劃到對岸就得花更多的時間。
當fj乙個人坐在木筏上,他把木筏劃到對岸需要m(1 <= m <= 1000)分鐘。當木筏搭載的奶牛數目從i-1增加到i時,fj得多花m_i(1 <= m_i <= 1000)分鐘才能把木筏劃過河(也就是說,船上有1頭奶牛時,fj得花m+m_1分鐘渡河;船上有2頭奶牛時,時間就變成m+m_1+m_2分鐘。後面 的依此類推)。那麼,fj最少要花多少時間,才能把所有奶牛帶到對岸呢?當然,這個時間得包括fj乙個人把木筏從對岸劃回來接下一批的奶牛的時間。
第1行: 2個用空格隔開的整數:n 和 m
第2..n+1行: 第i+1為1個整數:m_i
第1行: 輸出1個整數,為fj把所有奶牛都載過河所需的最少時間
5 10346100
1
50【輸入說明】
fj帶了5頭奶牛出門。如果是單獨把木筏劃過河,fj需要花10分鐘,帶上1頭奶牛的話,是13分鐘,2頭奶牛是17分鐘,3頭是23分鐘,4頭是123分鐘,將5頭一次性載過去,花費的時間是124分鐘。
【輸出說明】
farmer john第一次帶3頭奶牛過河(23分鐘),然後乙個人劃回來(10分鐘),最後帶剩下的2頭奶牛一起過河(17分鐘),總共花費的時間是23+10+17 = 50分鐘。
運送n頭奶牛所用的最短時間=min(先送k頭的最短時間+再送剩下n-k頭的最短時間+m)
#includeusingnamespace
std;
int dp[2550
];int
main()
for(int i=1;i<=n;i++)
}cout
return0;
}
posted on
2019-05-05 17:05
蔡軍帥_acm 閱讀(
...)
編輯收藏
奶牛渡河(dp)
時間限制 1 sec 記憶體限制 128 mb 提交 36 解決 27 提交 狀態 討論版 命題人 外部匯入 edit testdata 同步資料 farmer john以及他的n 1 n 2,500 頭奶牛打算過一條河,但他們所有的渡河工具,僅僅是乙個木筏。由於奶牛不會划船,在整個渡河過程中,fj...
奶牛渡河 線性dp
farmer john 以及他的 n 1 leq n leq 2500 頭奶牛打算過一條河,但他們所有的渡河工具,僅僅是乙個木筏。由於奶牛不會划船,在整個渡河過程中,farmer john 必須始終在木筏上。在這個基礎上,木筏上的奶牛數目每增加 1 farmer john 把木筏劃到對岸就得花更多的...
DP練習 奶牛的鍛鍊
奶牛bessie有n分鐘時間跑步,每分鐘她可以跑步或者休息。若她在第i分鐘跑步,可以跑出d i公尺,同時疲倦程度增加1 初始為0 若她在第i分鐘休息,則疲倦程度減少1。無論何時,疲倦程度都不能超過m。另外,一旦她開始休息,只有當疲憊程度減為0時才能重新開始跑步。在第n分鐘後,她的疲倦程度必須為0。第...