CF1800E1 Unforgivable Curse (easy version)

题目描述

这是该问题的简单版本。在本版本中,$k$ 始终为 $3$。 Wizengamot 的首席巫师曾经抓住了邪恶巫师 Drahyrt,但邪恶巫师卷土重来,想要向首席巫师复仇。因此,他从他的学生 Harry 那里偷走了咒语 $s$。 这个咒语是一个长度为 $n$ 的仅包含小写拉丁字母的字符串。 Drahyrt 想要将咒语替换成一个不可饶恕的诅咒 —— 字符串 $t$。 Drahyrt 利用古老的魔法,可以任意多次交换咒语中距离为 $k$ 或 $k+1$ 的字母。在本题中,你可以交换距离为 $3$ 或 $4$ 的字母。换句话说,Drahyrt 可以交换咒语 $s$ 中第 $i$ 位和第 $j$ 位的字母,当且仅当 $|i-j|=3$ 或 $|i-j|=4$。 例如,如果 $s=$ "talant",$t=$ "atltna",Drahyrt 可以这样操作: - 交换第 $1$ 位和第 $4$ 位的字母,得到咒语 "aaltnt"。 - 交换第 $2$ 位和第 $6$ 位的字母,得到咒语 "atltna"。 现在给定咒语 $s$ 和 $t$,请判断 Drahyrt 能否通过上述操作将咒语 $s$ 变为 $t$。

输入格式

输入的第一行包含一个整数 $T$($1 \le T \le 10^4$),表示测试用例的数量。 接下来是每个测试用例的描述。 每个测试用例的第一行包含两个整数 $n, k$($1 \le n \le 2 \cdot 10^5$,$k=3$),表示咒语的长度和 Drahyrt 可以交换的距离 $k$。 第二行给出咒语 $s$,是一个长度为 $n$ 的仅包含小写拉丁字母的字符串。 第三行给出咒语 $t$,是一个长度为 $n$ 的仅包含小写拉丁字母的字符串。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。注意,所有测试用例中 $k$ 的总和没有限制。

输出格式

对于每个测试用例,输出一行 "YES"(不区分大小写),如果 Drahyrt 能将咒语 $s$ 变为 $t$,否则输出 "NO"。 你可以用任意大小写输出答案(例如 "yEs"、"yes"、"Yes" 和 "YES" 都会被认为是正确答案)。

说明/提示

第一个样例的解释见题面。 第二个样例可以这样操作: - 交换第 $2$ 位和第 $5$ 位(距离为 $3$),得到咒语 "aaacbba"。 - 交换第 $4$ 位和第 $7$ 位(距离为 $3$),得到咒语 "aaaabbc"。 第三个样例可以证明无法通过交换距离为 $3$ 或 $4$ 的字母将 $s$ 变为 $t$。 第四个样例,例如可以按如下顺序变换: - "accio" $\rightarrow$ "aocic" $\rightarrow$ "cocia" $\rightarrow$ "iocca" $\rightarrow$ "aocci" $\rightarrow$ "aicco" $\rightarrow$ "cicao" 第五个样例可以证明无法将 $s$ 变为 $t$。 第六个样例,只需交换最外侧的两个字母即可。 由 ChatGPT 4.1 翻译