P14896 [ICPC 2018 Yokohama R] Shortest Common Non-Subsequence
题目描述
序列 $P$ 的一个子序列是指可以通过从原序列 $P$ 中选取某些或不选取任何元素并保持原有顺序而得到的序列。例如,"ICPC" 是 "MICROPROCESSOR" 的一个子序列。
两个序列的公共子序列是指同时作为这两个序列子序列的序列。著名的**最长公共子序列**问题是寻找两个给定序列的最长公共子序列。
在本问题中,相反地,我们考虑**最短公共非子序列**问题:给定两个由 0 和 1 组成的序列,你的任务是找到一个同样由 0 和 1 组成的最短序列,该序列不是这两个序列中任何一个的子序列。
输入格式
输入由两行组成,构成一个测试用例。两行都是仅由 0 和 1 组成的序列。它们的长度在 1 到 4000 之间(含)。
输出格式
在一行中输出两个给定序列的最短公共非子序列。如果存在两个或更多这样的序列,你应该输出字典序最小的那个。这里,对于长度相同的两个序列 $P$ 和 $Q$,如果存在 $k$ 使得 $P_1 = Q_1$,$\ldots$,$P_{k-1} = Q_{k-1}$,且 $P_k < Q_k$,则称 $P$ 的字典序小于 $Q$,其中 $S_i$ 是序列 $S$ 的第 $i$ 个字符。