luogu#P16377. [NordicOI 2026] Name Change
[NordicOI 2026] Name Change
背景
翻译来源:loj #5708. 「NordicOI 2026」Name Change。
3s,1024MB。
Subtask 0 为样例,Subtask 10 为官方的 Hack(符合所有点的要求)。
题目描述
你的朋友目前的名字是字符串 。他们希望将名字改为 。
不幸的是,他们所在的国家不允许随意更改姓名。但这区区小事难不倒他们:他们对政府网站进行了一些「调查」,发现了一种交换某些特定位置字符的方法。
更确切地说,他们找到了 对位置 ,并且可以交换这些位置上的字符(位置从 开始计数)。他们可以进行任意次数的交换操作。
他们现在想知道,是否可以通过执行一系列交换操作,将 转换为 。
输入格式
第一行包含两个整数 和 ,分别表示字符串 和 的长度以及可用的交换次数。
第二行包含字符串 。 由 个小写英文字母 组成。
第三行包含字符串 。 由 个小写英文字母 组成。
最后 行,每行包含两个整数 ,表示你的朋友可以交换位置 和 上的字符。输入中每对位置 最多出现一次。
输出格式
如果可以通过一系列交换操作将 转换为 ,则输出 Yes。否则,输出 No。
3 1
abc
acb
2 3
Yes
6 6
nordic
cdinor
1 6
2 6
2 3
3 5
4 5
1 4
Yes
6 6
kattis
sikatt
1 3
1 4
1 5
3 4
3 5
4 5
No
提示
评分
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| ,所有交换 均满足 ,且 已排序[1] | ||
| 所有交换 均满足 | ||
| , 已排序,且若允许交换 和 ,则也允许交换 [2] | ||
| , 已排序,且若允许交换 和 ,则也允许交换 | ||
| ,且若允许交换 和 ,则也允许交换 | ||
| 若允许交换 和 ,则也允许交换 | ||
| 已排序 | ||
| 无额外限制 | ||
样例解释
在样例 中,字符串 的第 位和第 位字符可以交换,从而得到 。因此,答案是 Yes。该样例满足所有交换都满足 的约束,因此它可能出现在子任务 中。由于它不满足 已排序的约束,因此它不会出现在子任务 中。
在样例 中,将 变为 的一种交换序列如下所示:

因此,答案是 Yes。请注意,在该样例中, 已排序,因此它可能出现在子任务 和 中。它不满足其他子任务的约束条件。
在样例 中,无法将 转换为 。一种观察方法是:第 个字符不参与任何交换,且此处存在不匹配: 在该位置是 ,而 在该位置是 。因此,无论进行何种交换,该位置的字符永远不会相同。该样例满足“若允许交换 和 ,则也允许交换 ”的约束。因此,它可能出现在子任务 和 中(不包括 和 ,因为 未排序)。