线性dp

经典线性dp

对于字符串st,一般定义f[i][j]表示对s[0:i]t[0:j]的状态

一维dp

发生在前缀/后缀之间的转移,例如从 f[i−1] 转移到 f[i],或者从 f[j] 转移到 f[i]

特殊子序列dp

比较特殊的一类题型,递推比记忆化搜索好写

计算合法子序列的最长长度、个数、元素和等。

一般定义 f[x] 表示以元素(数字) x 结尾的合法子序列的 xxx 值(比如个数、元素和),从子序列的倒数第二个数转移过来。

矩阵快速幂优化dp

请看快速幂

子矩阵dp

多维dp