SZTG-L-CF1701E. Text Editor

提交2 通过2
通过率100%
时间限制2000ms
内存限制256MiB

题目描述

题目描述

你本来想写一个由 mm 个小写拉丁字母组成的文本 tt,但实际上你写成了一个由 nn 个小写拉丁字母组成的文本 ss,现在你想通过编辑操作将 ss 变成 tt。

一开始,文本编辑器的光标位于文本 ss 的末尾(即最后一个字符之后)。每次操作,你可以进行以下操作之一:

  • 按下“左”键,将光标向左移动一个位置(如果光标已经在文本开头,即第一个字符之前,则无效);
  • 按下“右”键,将光标向右移动一个位置(如果光标已经在文本末尾,即最后一个字符之后,则无效);
  • 按下“Home”键,将光标移动到文本开头(即第一个字符之前);
  • 按下“End”键,将光标移动到文本末尾(即最后一个字符之后);
  • 按下“Backspace”键,删除光标前的一个字符(如果前面没有字符,则无效)。

你的任务是计算,使用上述操作,将文本 ss 变为文本 tt 所需的最少操作次数,或者判断在本测试用例下是否无法将 ss 变为 tt。

你需要回答 TT 个独立的测试用例。

输入格式

输入的第一行包含一个整数 TT,表示测试用例的数量。接下来是 TT 个测试用例。

每个测试用例的第一行包含两个整数 nn 和 mm,分别表示 ss 和 tt 的长度。

第二行为长度为 nn 的字符串 ss,由小写拉丁字母组成。

第三行为长度为 mm 的字符串 tt,由小写拉丁字母组成。

输出格式

对于每个测试用例,输出一个整数,表示将 ss 变为 tt 所需的最少操作次数。如果无法将 ss 变为 tt,则输出 −1-1。

6
9 4
aaaaaaaaa
aaaa
7 3
abacaba
aaa
5 4
aabcd
abcd
4 2
abba
bb
6 4
baraka
baka
8 7
question
problem
5
6
3
4
4
-1

说明 / 提示

由 ChatGPT 4.1 翻译

1
1 1
a
a
0
1
5 1
abcde
a
4

数据范围

保证所有测试用例中 nn 的总和不超过 50005000(∑n≤5000\sum n \le 5000)。

(1≤T≤50001 \le T \le 5000)

(1≤m≤n≤50001 \le m \le n \le 5000)