1.running(PKU 3661)

这道题目是一道动态规划(DP)题。

状态转移方程为:

(dp[i][j]表示在第i分钟结束时有体力j)

dp[i][j]=dp[i-1][j-1]+d[i] (j>0)

dp[i][0]=max{dp[i-j][j],dp[i-1][0]} (i-j>=j,j<=m)

为什么这样写呢?

后面一个方程比较好理解,j=0肯定是从前面已知休息得来的。

前面一个方程为什么不可能是dp[i][j]=dp[i-1][j+1]呢,因为这种情况已经包含在下面一个方程里了(注意,要休息必须已知休息到j=0)

code
Posted on 2009-06-20 11:35 北国飘雨 阅读(184) 评论(0)  编辑 收藏 引用 所属分类: ACM