问题 5466 --相等字符串

5466: 相等字符串★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 12  解决: 8
[提交][状态][命题人:]

题目描述

小小同学有两个字符串ab和一个整数k。两个字符串的长度都为n,且字符串中只包含小写英文字母。小小同学想通过对a串执行若干次(可以是零次)操作后将字符串a转换为字符串b。小小同学可以执行的操作定义为以下两种:

1)选择一个整数i(1≤i≤n1),交换aiai+1,即小小可以交换串中相邻的两个字符。

2)选择一个整数i (1≤i≤nk+1),如果ai,ai+1ai+k1都等于某个字符c (c≠'z'),则小小可以用下一个字符(c+1)替换它们,即'a'替换为'b' 'b'替换为'c',以此类推。换句话说,若串中有k个连续相同的字符,则可以将它们替换为该字符的下一个字符。

注意,小小同学可以执行任意次数的操作,而且这些操作只能在字符串a上执行。

请帮助小小同学确定在对字符串a执行若干次(可能为零次)操作之后,是否可能将字符串a转换为b

输入

第一行包含一个整数t(1≤t≤105):测试用例的数量。

每个测试用例的第一行包含两个整数n(2≤n≤106)k(1≤k≤n)

每个测试用例的第二行包含长度为n的字符串a,由小写英文字母组成。

每个测试用例的第三行包含长度为n的字符串b,由小写英文字母组成。

测试数据保证所有测试用例中n的总和不超过106

输出

对于每个测试用例,如果小小同学经过若干次操作后可以将a转换为b,则输出“Yes”,否则打印“No”。每个测试用例输出一行。

样例输入
Copy
4
3 3
abc
bcd
4 2
abba
azza
2 1
zz
aa
6 2
aaabba
ddddcc
样例输出
Copy
No
Yes
No
Yes

提示

来源

[提交][状态]