为什么多个字符串的最长公共子序列是 NP-Hard?

Why is the longest common subsequence for multiple strings NP-Hard?

我很难理解为什么多个字符串 (k > 2) 的最长公共子序列问题是 NP-Hard。我知道两个长度为 l1, l2 的字符串的 LCS 问题可以在 O(l1*l2) 时间内解决。我的问题是为什么我们不能一次找到两个字符串的LCS,例如:

LCS(abcd, ad, abc) = LCS(LCS(abcd, ad), abc) = LCS(ad, abc) = a

对于 k 个字符串,此算法的复杂度为 O(k*Max_length^2)。为什么这是错误的?

LCS(x, y, z) = LCS(x, LCS(y, z)) 通常不正确。例如:

LCS(bb, aaabb, bbaaa) = bb

LCS(bb, LCS(aaabb, bbaaa)) = LCS(bb, aaa) ≠ bb