- 给定一个序列
- 动态规划方程
f[i]
中的下标i
表示前i个元素a[0] a[1] ... a[i-1]
的某种性质- 坐标型的
f[i]
表示为结尾的某种性质
- 坐标型的
- 初始化中,
f[0]
表示空序列的性质- 坐标型动态规划的初始条件
f[0]
就是指以为结尾的子序列的性质
- 坐标型动态规划的初始条件
2.1
2.2
2.3
2.4 题目解析
843 · 数字翻转
解析
题意:
- 给定一个长度为
N
的01串要求翻转其中最少的01,使得结果中没有
"01"
这样的子串例子:
- 输入:
[1 0 1 0 1 0]
- 输出:2 (变成
[1 1 1 1 1 0]
)确定状态:
- 最后一步:最优策略中,最后一位数是否翻转
- 但是需要知道前一位数已经变成
0
还是1
- 并且前
N-1
位数最少翻转多少次,满足要求(无01
子串)- 不知道的信息加入状态里
- 状态
- 用
f[i][0]
表示A[i-1]
变成0
的情况下,前i
位最少翻转多少个能满足要求- 用
f[i][1]
表示A[i-1]
变成1
的情况下,前i
位最少翻转多少个能满足要求初始条件和边界情况:
题目
:::info
:::
👋
样例
Input:
Output:
:::success
:::
Explain:
:::warning
:::
Input:
Output:
:::success
:::
Explain:
:::warning
代码
515 · 房屋染色
解析
题意:
确定状态:
子问题:
转移方程:
初始条件和边界情况:
计算顺序:
题目
:::info
:::
👋
样例
Input:
Output:
:::success
:::
Explain:
:::warning
:::
Input:
Output:
:::success
:::
Explain:
:::warning