QOJ.ac

QOJ

Time Limit: 3.0 s Memory Limit: 1024 MB Total points: 100

#17622. 更改名称

Statistics

你朋友现在的名字是一个字符串 S。 他们希望把名字改成 T。 不幸的是,他们居住的国家不允许更改名字。 但这小小的阻碍难不倒他们:他们对政府网站进行了一些“调查”,发现了一种交换某些位置字符的方法。 更确切地说,他们找到了 $M$ 对位置 $(i,j)$,并且可以交换这些位置(从 $1$ 开始计数)上的字符。他们可以进行任意次数的交换。

现在他们想知道,是否可以通过一系列交换将 S 转换为 T

输入格式

第一行包含两个整数 $N$ 和 $M$ ($1 \leq N, M \leq 2 \cdot 10^5$),分别表示 ST 的长度,以及可用的交换次数。

第二行包含字符串 SS 由 $N$ 个小写英文字母 a-z 组成。

第三行包含字符串 TT 由 $N$ 个小写英文字母 a-z 组成。

接下来的 $M$ 行,每行包含一对整数 $i, j$ ($1 \leq i < j \leq N$),表示你可以交换位置 $i$ 和 $j$ 上的字符。 每对索引 $(i,j)$ 在输入中最多出现一次。

输出格式

如果可以通过一系列交换将 S 转换为 T,输出 Yes。 否则,输出 No

子任务

你的解法将在多组测试数据上进行测试。 要获得某一组的分数,你必须通过该组中的所有测试用例。

子任务 分数 约束条件
1 5 $N, M \leq 100$,$j=i+1$ 对所有交换 $(i,j)$ 成立,且 T 是有序的^1
2 14 $j=i+1$ 对所有交换 $(i,j)$ 成立。
3 10 $N, M \leq 100$,T 是有序的,且如果允许交换 $(i,j)$ 和 $(j,k)$,则也允许交换 $(i,k)$[^2]。
4 11 $N, M \leq 2000$,T 是有序的,且如果允许交换 $(i,j)$ 和 $(j,k)$,则也允许交换 $(i,k)$。
5 17 $N, M \leq 2000$,且如果允许交换 $(i,j)$ 和 $(j,k)$,则也允许交换 $(i,k)$。
6 18 如果允许交换 $(i,j)$ 和 $(j,k)$,则也允许交换 $(i,k)$。
7 7 $N, M \leq 2000$
8 8 T 是有序的。
9 10 无额外约束。

[^2]: 请注意,此条件甚至适用于间接交换:如果两个索引 $s$ 和 $t$ 可以通过一系列间接交换 $(s,a), (a,b), \dots, (f, t)$ 来交换,则也必须允许直接交换 $(s,t)$。

样例

样例输入 1

3 1
abc
acb
2 3

样例输出 1

Yes

样例输入 2

6 6
nordic
cdinor
1 6
2 6
2 3
3 5
4 5
1 4

样例输出 2

Yes

样例输入 3

6 6
kattis
sikatt
1 3
1 4
1 5
3 4
3 5
4 5

样例输出 3

No

说明

在样例 1 中,可以交换 abc 中位置 2 和 3 的字母得到 acb。因此,答案为 Yes。 该样例满足所有交换都满足 $j=i+1$ 的约束,因此它可能出现在子任务 2 中。它不满足 T 是有序的,因此它不会出现在子任务 1 中。

在样例 2 中,从 nordic 变为 cdinor 的一种交换序列如下:

img

因此,答案为 Yes。注意,在此样例中,T 是有序的,因此它可能出现在子任务 7、8 和 9 中。它不满足出现在其他子任务中所需的足够约束。

在样例 3 中,无法从 S 变为 T。一种观察方法是,第六个字母不参与任何交换,且存在不匹配:S 在该位置是 s,而 Tt。因此,无论进行何种交换,该位置的字母永远不会相同。该样例满足“如果允许交换 $(i,j)$ 和 $(j,k)$,则也允许交换 $(i,k)$”的约束。因此,它可能出现在子任务 5、6、7 和 9 中(不出现在 3 和 4 中,因为 T 不是有序的)。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.