动态规划--数轴动态规划问题
Posted duanshuai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划--数轴动态规划问题相关的知识,希望对你有一定的参考价值。
【01背包问题】
1.如何用子问题表示
P[1…n , C]表示总问题
dp[ i ][ j ]表示P[ i…n,j ]的最大价值
则总问题P[1…n , C] = max{ P[2…n , C - v1 ] , P[ 2…n , C] }
2. 优化子结构和重叠子问题
3. 递归表达式
dp[ i ][ j ] = max{ dp[ i + 1][ j - wi ] + vi , dp[ i + 1][ j ]}(选与不选)
递归终点:dp[ n ] [ j ] = vn (j > wn) ; dp[ n ][ j ] = 0(j < wn)
4.伪代码
For j=0 To min(wn-1 , C)
Do dp[ n ][ j ] = 0;
For j=wn To C
Do dp[ n ][ j ] = vn;
For i = n-1 To 2
Do For j = 0 To min(wi-1 , C)
Do dp[ i ][ j ] = m[ i+1 ][ j ];
For j = wi To C
Do dp[ i ][ j ] = max{ dp[ i + 1][ j - wi ] + vi , dp[ i + 1][ j ]}
if C < w1
Then dp[ 1 ][ C ] = dp[ 2 ][ C ]
Else dp[ 1 ][ C ] = max{ dp[ 2 ][ C - w1 ] + v1 , dp[ 2 ][ C ] }
【购物问题】
以上是关于动态规划--数轴动态规划问题的主要内容,如果未能解决你的问题,请参考以下文章
算法动态规划 ④ ( 动态规划分类 | 坐标型动态规划 | 前缀划分型动态规划 | 前缀匹配型动态规划 | 区间型动态规划 | 背包型动态规划 )
算法动态规划 ④ ( 动态规划分类 | 坐标型动态规划 | 前缀划分型动态规划 | 前缀匹配型动态规划 | 区间型动态规划 | 背包型动态规划 )
算法动态规划 ③ ( LeetCode 62.不同路径 | 问题分析 | 自顶向下的动态规划 | 自底向上的动态规划 )
算法动态规划 ③ ( LeetCode 62.不同路径 | 问题分析 | 自顶向下的动态规划 | 自底向上的动态规划 )
算法动态规划 ② ( 动态规划四要素 | 动态规划状态 State | 动态规划初始化 Initialize | 动态规划方程 Function | 动态规划答案 Answer )
算法动态规划 ② ( 动态规划四要素 | 动态规划状态 State | 动态规划初始化 Initialize | 动态规划方程 Function | 动态规划答案 Answer )