【总结】线性dp的几种重要模型
当前点定义
\(f[i]\) :走到第 \(i\) 个点的方案数 / 最值。
\(f[i][j]\) :走到第 \(i\) 个点,选了 \(j\) 个的答案。
依据题目的限制个数可以继续添加维数,也可能考虑用差值压缩维数之类的。
当前休息定义
\(f[i]\) :不选第 \(i\) 天的答案。
优点:若从 \(f[j]\) 转移过来,那么 \(j + 1 \sim i - 1\) 相当于都要选,常用于处理序列上的区间选择问题。
NOIP2023 天天爱打卡
LCS 模型
\(f[i][j]\):当前走到 \(A\) 串的第 \(i\) 位,匹配到了 \(B\) 串的第 \(j\) 位,方案数,其中 \(A[i]\) 不必匹配 \(B[j]\)。
最大的特点就是 \(A[i]\) 不强制匹配,这样的话从 \(f[i - 1][j]\), \(f[i - 1][j - 1]\) 转移 / 继承过来,循环直接比 强制匹配 少了一层。
NOIP2015 提高组 子串

浙公网安备 33010602011771号