zoukankan      html  css  js  c++  java
  • POJ 3661 DP

    题意:
    这里写图片描述
    思路:
    i表示到了i,j表示疲劳度为j
    f[i][j]表示能跑的最大距离
    f[i][j]=f[i-1][j-1]+a[i]
    if(i-j>=0)f[i][0]=max(f[i][0],f[i-j][j]);
    f[i][0]=max(f[i][0],f[i-1][0]);

    //By SiriusRen
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int n,m,a[10050],f[10050][505];
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                f[i][j]=f[i-1][j-1]+a[i];
                if(i-j>=0)f[i][0]=max(f[i][0],f[i-j][j]);
            }
            f[i][0]=max(f[i][0],f[i-1][0]);
        }
        printf("%d
    ",f[n][0]);
    }

    这里写图片描述

  • 相关阅读:
    第二次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第三次作业
    第二次作业
    第二次作业
    gravity
    card
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532292.html
Copyright © 2011-2022 走看看