zoukankan      html  css  js  c++  java
  • poj 3661 Running (DP)

    http://poj.org/problem?id=3661

    到达终点的方式有两种,一是从n-1走到n,二是从某一节点休息到n。

    dp[i][j],i代表第几分钟,j代表当前忍耐度。

    对于第一种情况,dp[i][j]=dp[i-1][j-1] + d[i] ;

    第二种情况,dp[i-1][0]已经计算出来,设dp[i][0]初值为dp[i-1][0],也就是说在i-1分钟忍耐度为0时继续休息到i。

    那么dp[i][0] = Max(dp[i][0], dp[i-k][k]) ; 

    code:

    #include<cstdio>
    int dp[10005][505] ;
    int d[10005] ;
    int max(int a, int b){
        if(a>b){return a ;}
        return b ;
    }
    int main(){
        int n, m, i, j, k ;
        while(~scanf("%d%d", &n, &m)){
            for(i=1; i<=n; i++)
                scanf("%d", &d[i]) ;
            dp[0][0] = 0 ;
            for(i=1; i<=n; i++){
                for(j=1; j<=m; j++)
                    dp[i][j] = dp[i-1][j-1] + d[i] ;
                dp[i][0] = dp[i-1][0] ;
                for(k=1; k<=m&&k<=i-k; k++)
                    dp[i][0] = max(dp[i][0], dp[i-k][k]) ;
            }
            printf("%d\n", dp[n][0]) ;
        }
        return 0 ;} 
  • 相关阅读:
    Matrix
    Color the ball
    Coupons
    密码箱
    Milking Grid
    Substrings
    亲和串
    Jzzhu and Cities
    transition多个属性同时渐变(left/top)
    CSS3提供的transition动画
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2449003.html
Copyright © 2011-2022 走看看