#P14896. [ICPC 2018 Yokohama R] Shortest Common Non-Subsequence

    ID: 14815 远端评测题 5000ms 512MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>2018广度优先搜索 BFS有限状态自动机ICPC横浜

[ICPC 2018 Yokohama R] Shortest Common Non-Subsequence

Description

序列 PP 的一个子序列是指可以通过从原序列 PP 中选取某些或不选取任何元素并保持原有顺序而得到的序列。例如,"ICPC" 是 "MICROPROCESSOR" 的一个子序列。

两个序列的公共子序列是指同时作为这两个序列子序列的序列。著名的最长公共子序列问题是寻找两个给定序列的最长公共子序列。

在本问题中,相反地,我们考虑最短公共非子序列问题:给定两个由 0 和 1 组成的序列,你的任务是找到一个同样由 0 和 1 组成的最短序列,该序列不是这两个序列中任何一个的子序列。

Input Format

输入由两行组成,构成一个测试用例。两行都是仅由 0 和 1 组成的序列。它们的长度在 1 到 4000 之间(含)。

Output Format

在一行中输出两个给定序列的最短公共非子序列。如果存在两个或更多这样的序列,你应该输出字典序最小的那个。这里,对于长度相同的两个序列 PPQQ,如果存在 kk 使得 P1=Q1P_1 = Q_1\ldotsPk1=Qk1P_{k-1} = Q_{k-1},且 Pk<QkP_k < Q_k,则称 PP 的字典序小于 QQ,其中 SiS_i 是序列 SS 的第 ii 个字符。

0101
1100001
0010
101010101
010101010
000000
11111111
00000000
01