CF1968B.Prefiquence

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Prefiquence

题目描述

给定两个二进制字符串 aabb。二进制字符串是仅由字符 '0' 和 '1' 组成的字符串。

你的任务是确定最大的整数 kk,使得字符串 aa 的长度为 kk 的前缀是字符串 bb 的一个子序列。

如果序列 aa 可以通过从序列 bb 中删除若干(可能为零或全部)元素得到,则称 aabb 的一个子序列。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nnmm1n,m21051 \le n, m \le 2 \cdot 10^5),分别表示字符串 aabb 的长度。

每个测试用例的第二行包含一个长度为 nn 的二进制字符串 aa

每个测试用例的第三行包含一个长度为 mm 的二进制字符串 bb

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5,所有测试用例中 mm 的总和也不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,输出一个整数,表示最大的 kk,使得 aa 的前 kk 个字符构成 bb 的一个子序列。

说明/提示

在第一个样例中,字符串 '10' 是 '1\color{red}11\color{red}0' 的一个子序列,但字符串 '100' 不是。所以答案是 22

在第五个样例中,a=100a = '100'b=11010b = '1\color{red}{10}1\color{red}0',整个字符串 aa 是字符串 bb 的一个子序列。所以答案是 33

在第六个样例中,字符串 bb 不包含 '1',所以答案是 00

由 ChatGPT 4.1 翻译

样例

6
5 4
10011
1110
3 3
100
110
1 3
1
111
4 4
1011
1111
3 5
100
11010
3 1
100
0
2
2
1
1
3
0

在线编程 IDE

建议全屏模式获得最佳体验