TYVJ P1023 奶牛的鍛鍊

2022-08-16 03:12:10 字數 1501 閱讀 1930

奶牛的鍛鍊

背景 background

usaco

描述 description

奶牛bessie有n分鐘時間跑步,每分鐘她可以跑步或者休息。若她在第i分鐘跑步,可以跑出d_i公尺,同時疲倦程度增加1(初始為0)。若她在第i分鐘休息,則疲倦程度減少1。無論何時,疲倦程度都不能超過m。另外,一旦她開始休息,只有當疲憊程度減為0時才能重新開始跑步。在第n分鐘後,她的疲倦程度必須為0。

輸入格式 inputformat

第一行,兩個整數,代表n和m。

接下來n行,每行乙個整數,代表d_i。

輸出格式 outputformat

bessie想知道,她最多能跑的距離。

樣例輸入 sampleinput [複製資料]

5 2

5

3

4

2

10

樣例輸出 sampleoutput [複製資料]

9

資料範圍和注釋 hint

n <= 2000 , m <= 500 , d_i <= 1000

題解:線性動態規劃。維護乙個二維陣列f[n][m],表示在第n個點,疲倦程度為m時跑得最遠路程。狀態轉移: (選擇跑步)f[i][j]=max(f[i][j],f[i-1][j-1]+d[i]);(選擇休息)f[i][0]=max(f[i][0],f[i-j][j]);f[i][0]=max(f[i][0],f[i-1][0]);最後f[n][0]即為所求。

**:

1 #include2 #include

3int

i,j,n,m,k,

4 f[2100][510],d[2100];5

6int

7pre()813

14int

15 max(int a,int

b)16

2021

int22

dp()

2333}34

return0;

35}3637

int38

init()

3945

46int

47main()

48

P1023 奶牛的鍛鍊

p1023奶牛的鍛鍊 usaco 奶牛bessie有n分鐘時間跑步,每分鐘她可以跑步或者休息。若她在第i分鐘跑步,可以跑出d i公尺,同時疲倦程度增加1 初始為0 若她在第i分鐘休息,則疲倦程度減少1。無論何時,疲倦程度都不能超過m。另外,一旦她開始休息,只有當疲憊程度減為0時才能重新開始跑步。在第...

Tyvj 題目1023 奶牛的鍛鍊(DP)

p1023奶牛的鍛鍊 usaco 奶牛bessie有n分鐘時間跑步,每分鐘她可以跑步或者休息。若她在第i分鐘跑步,可以跑出d i公尺,同時疲倦程度增加1 初始為0 若她在第i分鐘休息,則疲倦程度減少1。無論何時,疲倦程度都不能超過m。另外,一旦她開始休息,只有當疲憊程度減為0時才能重新開始跑步。在第...

奶牛的鍛鍊

這題有一點比較猥瑣,就是一休息就要休息到疲勞值為0 奶牛果然沒有人類勤奮啊 辣麼如果不讓奶牛休息,這題是不是好解的多呢?任何乙個蒟蒻都可以看出,f i j f i 1 j 1 d i 現在加入了休息也很好辦,一休息就去替換f 0 而不參加迴圈部分的運算,這樣可以減去一些負擔。於是我們可以寫出偽 f ...