如何证明LCS的长度可以得出SCS的长度?

时间:2019-04-02 20:49:46

标签: algorithm dynamic-programming

让X [1。 。 。 m]和Y [1。 。 。 n]是两个给定的数组。 X和Y的共同超序列是数组Z [1。 。 。 k],使得X和Y都是Z [1的子序列。 。 。 k]。目的是找到X和Y的最短公共超序列(SCS)Z,以解决以下子问题。

如何显示数组Z的长度k满足方程k = m + n−l,其中l是X和Y的最长公共子序列的长度?

需要使用递推方程和归纳法

当我尝试设计一种算法来查找SCS的长度时,答案很合逻辑。为了找到Z的k,我们需要找到具有XandYas子序列并且在所有此类数组中最短的数组。如果我们确定X和Y中的所有元素都是不同的,那么我们可以简单地将X和Y的长度相加。但是,X和Y可以具有公共元素和重复元素,因此我们无法对这些长度求和,因为任务是找到尽可能短的元素超序列。因此,我们需要考虑X和Y的最长公共子序列,并从总和中分散注意力。

但是,我不知道如何通过归纳证明。

0 个答案:

没有答案