[Usaco07Jan] Running

来源:互联网 发布:工农牌糖精淘宝网 编辑:程序博客网 时间:2024/05/18 02:04

题目链接

题解:dp

#include <cstdio>#include <cstring>#include <cmath>#include <string>#include <iostream>#include <algorithm>using namespace std;const int N=10005, M=505;int f[N][M],n,m,d[N];//第i分钟疲劳为j的跑步距离int main() {    cin>>n>>m;    for(int i=1;i<=n;i++) cin>>d[i];    for(int i=1;i<=n;i++){        f[i][0]=max(f[i][0],f[i-1][0]);//疲劳值为0时休息        for(int j=1;j<=n;j++) {            f[i][j]=f[i-1][j-1]+d[i];//跑            if(i-j>0) f[i][0]=max(f[i][0],f[i-j][j]);//休息,因为疲劳值要恢复0,所以从f[i-j][j]转移过来        }    }    cout<<f[n][0]<<endl;    return 0;}
0 0
原创粉丝点击