CFCF2196E1.Fuzzy Concatenation (Easy Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的简易版本。不同之处在于本题中 n≤105,m≤104。只有在解决了所有版本后才能进行 hack。
现在有两个字符串 s 和 t,它们均由小写拉丁字母组成。同时你还有一个初始为空的字符串 p。
你可以执行如下操作,每次操作包含若干阶段:
- 任意选择两个整数 l 和 r,满足 1≤l≤r≤∣s∣;
- 复制子串 sl,…,sr,并将其追加到字符串 p 的末尾;
- 在 p 最后新添加的 r−l+1 个字符中,最多可以将其中任意一个字符修改为任意一个小写拉丁字母。
例如,若字符串 $s = $ "dhhtyhwbsl",$p = $ "",你可以选择 l=3,r=6,将 "htyh" 添加到 p 的末尾,并把字符 "y" 改成 "a",结果 $p = $ "htah"。
你的任务是,判断让字符串 p 变为 t,所需操作的最少次数。
输入格式
每组测试数据包含多个测试用例。第一行包含整数 t(1≤t≤104),表示测试用例组数。
每组测试用例的第一行包含两个整数 n 和 m(1≤n≤105,1≤m≤104),分别表示字符串 s 和 t 的长度。
第二行给出长度为 n 的字符串 s,只包含小写拉丁字母。
第三行给出长度为 m 的字符串 t,只包含小写拉丁字母。
保证所有测试用例中 n 的总和不超过 105,m 的总和不超过 104。
输出格式
每组测试用例输出一个整数,表示答案。
输入输出样例
输入#1
4 1 1 a b 5 5 aaaaa abzba 10 13 dhhtyhwbsl htahbsehtyhzb 7 2 contest on
输出#1
1 3 3 1
说明/提示
在第一个测试用例中,你可以从字符串 s 中取子串 «a»,将其中的某一位改为 «b»,追加到 p 的末尾,最终使 p 变为 t。
在第二个测试用例中,t 可用 3 次操作构造出来:
«ab»+«z»+«ba»
变更的字符用红色高亮。
在第三个测试用例中,t 可分多步得到:
«htah»+«bse»+«htyhzb»