AT_arc157_f.[ARC157F] XY Ladder LCS
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个由 X 和 Y 组成、长度为 N 的字符串 S 和 T。对于每个 i=1,2,…,N,你可以自由选择是否交换 S 和 T 的第 i 个字符。这样一来,最终可以得到 2N 种不同的字符串对。请你求出这些字符串对的所有公共子序列(不要求连续)中最长的一个。如果有多个长度相同的公共子序列,请输出其中字典序最小的那个。
公共子序列的定义如下:字符串 S 的子序列是指从 S 中删除 0 个或多个字符后,按原顺序排列剩下的字符所得到的字符串。字符串 S 和 T 的公共子序列是指既是 S 的子序列又是 T 的子序列的字符串。(也可以参考样例 1 的说明。)
输入格式
输入通过标准输入按以下格式给出。
N S T
输出格式
请输出在所有可能的交换操作后得到的字符串对的公共子序列中,最长且字典序最小的字符串。
输入输出样例
输入#1
3 XXX YYY
输出#1
XY
输入#2
1 X Y
输出#2
输入#3
4 XXYX YYYY
输出#3
XYY
说明/提示
限制条件
- 1≤N≤50
- S 和 T 均为由
X和Y组成的长度为 N 的字符串。
样例解释 1
- 如果不交换任何字符,
XXX和YYY的公共子序列只有空字符串。 - 如果只交换第 1 个字符,
YXX和XYY的公共子序列有:空字符串、X、Y。 - 如果只交换第 2 个字符,
XYX和YXY的公共子序列有:空字符串、X、Y、XY、YX。 - 如果只交换第 3 个字符,
XXY和YYX的公共子序列有:空字符串、X、Y。 - 交换 2 个或更多字符的情况,可以通过交换 S 和 T 本身来等价地考虑上述情况。
- 因此,可能的最长公共子序列为
XY和YX,其中字典序最小的是XY,所以答案为XY。
样例解释 2
答案也可能是空字符串。
样例解释 3
例如,如果只交换第 2 个字符,可以得到 XYY 作为公共子序列。不存在更长的公共子序列,也不存在长度相同且字典序更小的公共子序列,因此答案为 XYY。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?