DP練習 奶牛的鍛鍊

2021-07-15 11:41:10 字數 728 閱讀 7027

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

第一行,兩個整數,代表n和m。接下來n行,每行乙個整數,代表d_i。

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

5 2534

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

這道題狀態轉換的時候要注意三點:

1、奶牛可以繼續休息 f[t][0] = f[t-1][0]

2、奶牛可以繼上一分鐘繼續奔跑 f[t][i] = f[t-1][i-1] + a[i]

3、奶牛在某分鐘疲勞值為0的時候,與 x 分鐘前有 x 點疲勞值的狀態的相同的,即 f[t][i] = f[t-i][0]

這樣就有了狀態轉換方程,dp一下就出來了【說是容易,我想了好久……而且現在還是有些迷糊】

#include #include #include using namespace std;

int ans[2005][505];

int dis[2005];

int main()

}printf("%d\n", ans[n][0]);

}return 0;

}

奶牛的鍛鍊 線性dp

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

奶牛的鍛鍊

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

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

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