308007: CF1451C. String Equality

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

String Equality

题意翻译

**本题有多组数据**。 第一行输入一个整数 $t$,表示数据组数。 对于每组数据: 第一行输入两个正整数 $n,k$。 第二行输入一个长度为 $n$ 字符串 $a$。 第三行输入一个长度为 $n$ 字符串 $b$。 Ashish 会对字符串 $a$ 进行以下两种操作: - 选择一个位置 $i$($1\leq i\leq n-1$)并交换 $a_i$ 和 $a_{i+1}$。 - 选择一个位置 $i$($1\leq i\leq n-k+1$),满足 $a_i,a_{i+1},\ldots,a_{i+k-1}$ 都等于某个字符 $c$($c\neq$'z'),把 $a_i,a_{i+1},\ldots,a_{i+k-1}$ 都变成 $(c+1)$。 你需要回答 Ashish 能否通过若干个(可能是零个)操作将字符串 $a$ 变成字符串 $b$。如果可以,请输出 `Yes`,否则,输出 `No`。

题目描述

Ashish has two strings $ a $ and $ b $ , each of length $ n $ , and an integer $ k $ . The strings only contain lowercase English letters. He wants to convert string $ a $ into string $ b $ by performing some (possibly zero) operations on $ a $ . In one move, he can either - choose an index $ i $ ( $ 1 \leq i\leq n-1 $ ) and swap $ a_i $ and $ a_{i+1} $ , or - choose an index $ i $ ( $ 1 \leq i \leq n-k+1 $ ) and if $ a_i, a_{i+1}, \ldots, a_{i+k-1} $ are all equal to some character $ c $ ( $ c \neq $ 'z'), replace each one with the next character $ (c+1) $ , that is, 'a' is replaced by 'b', 'b' is replaced by 'c' and so on. Note that he can perform any number of operations, and the operations can only be performed on string $ a $ . Help Ashish determine if it is possible to convert string $ a $ into $ b $ after performing some (possibly zero) operations on it.

输入输出格式

输入格式


The first line contains a single integer $ t $ ( $ 1 \leq t \leq 10^5 $ ) — the number of test cases. The description of each test case is as follows. The first line of each test case contains two integers $ n $ ( $ 2 \leq n \leq 10^6 $ ) and $ k $ ( $ 1 \leq k \leq n $ ). The second line of each test case contains the string $ a $ of length $ n $ consisting of lowercase English letters. The third line of each test case contains the string $ b $ of length $ n $ consisting of lowercase English letters. It is guaranteed that the sum of values $ n $ among all test cases does not exceed $ 10^6 $ .

输出格式


For each test case, print "Yes" if Ashish can convert $ a $ into $ b $ after some moves, else print "No". You may print the letters of the answer in any case (upper or lower).

输入输出样例

输入样例 #1

4
3 3
abc
bcd
4 2
abba
azza
2 1
zz
aa
6 2
aaabba
ddddcc

输出样例 #1

No
Yes
No
Yes

说明

In the first test case it can be shown that it is impossible to convert $ a $ into $ b $ . In the second test case, "abba" $ \xrightarrow{\text{inc}} $ "acca" $ \xrightarrow{\text{inc}} $ $ \ldots $ $ \xrightarrow{\text{inc}} $ "azza". Here "swap" denotes an operation of the first type, and "inc" denotes an operation of the second type. In the fourth test case, "aaabba" $ \xrightarrow{\text{swap}} $ "aaabab" $ \xrightarrow{\text{swap}} $ "aaaabb" $ \xrightarrow{\text{inc}} $ $ \ldots $ $ \xrightarrow{\text{inc}} $ "ddaabb" $ \xrightarrow{\text{inc}} $ $ \ldots $ $ \xrightarrow{\text{inc}} $ "ddddbb" $ \xrightarrow{\text{inc}} $ $ \ldots $ $ \xrightarrow{\text{inc}} $ "ddddcc".

Input

题意翻译

**本题有多组数据**。 第一行输入一个整数 $t$,表示数据组数。 对于每组数据: 第一行输入两个正整数 $n,k$。 第二行输入一个长度为 $n$ 字符串 $a$。 第三行输入一个长度为 $n$ 字符串 $b$。 Ashish 会对字符串 $a$ 进行以下两种操作: - 选择一个位置 $i$($1\leq i\leq n-1$)并交换 $a_i$ 和 $a_{i+1}$。 - 选择一个位置 $i$($1\leq i\leq n-k+1$),满足 $a_i,a_{i+1},\ldots,a_{i+k-1}$ 都等于某个字符 $c$($c\neq$'z'),把 $a_i,a_{i+1},\ldots,a_{i+k-1}$ 都变成 $(c+1)$。 你需要回答 Ashish 能否通过若干个(可能是零个)操作将字符串 $a$ 变成字符串 $b$。如果可以,请输出 `Yes`,否则,输出 `No`。

加入题单

上一题 下一题 算法标签: