奶牛渡河(dp)

2021-09-21 06:18:44 字數 1228 閱讀 8039

時間限制: 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 1034

6100

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)

#includeusing

namespace

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。第...