DP思想笔记

时间:2022-05-27 00:04:56

一、思想

DP也是把复杂的问题分解为许多子问题,与分治法不同的是,分治法的各个子问题互相之间没有联系,而动态规划却有。前一个子问题的结果与下一步的子问题的结果是什么有关系。这就决定了DP算法肯定有一个表来记忆之前问题的结果。

对于一个可用DP解决的问题,可用先对问题进行分析建模。得到边界,最优子结构,状态转换方式。

接着,从边界出发,利用状态转发方式,达到最优结果。

二、例子lcs

要求两个字符串之间的LCS。

先分析如果用暴力破解,很耗时间。

试着把问题规模降低,如果是两个长度为1的字符串求LCS,很简单。

一个长度为1,一个长度为n也很简单。

那么用DP的角度想一下。

边界就是两个长度为1的字符串,

状态转换方式就是(A为长度矩阵)

DP思想笔记