【动态规划】
证明作为构成原问题最优解的组成部分,每个子问题的解就是它本身的最优解。方法是反证法,考虑加入某个子问题的解不是其自身的最优解,那么就可以从原问题的解中用该子问题的最优解替换掉当前的非最优解,从而得到原问题的一个更优的解,从而与原问题最优解的假设矛盾。设 f(i,j) 表示只考虑 A 的前 i 个元素,B 的前 j 个元素时的最长公共子序列的长度,求这时的最长公共子序列的长度就是 子问题。如果有大量的重叠子问题,我们可以用空间将这些子问题的解存储下来,避免重复求解相同的子问题,从而提升效率。
原创
2023-08-22 15:24:07 ·
61 阅读 ·
1 评论