CF1968B.Prefiquence
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个二进制字符串 a 和 b。二进制字符串是仅由字符 '0' 和 '1' 组成的字符串。
你的任务是确定最大的整数 k,使得字符串 a 的长度为 k 的前缀是字符串 b 的一个子序列。
如果序列 a 可以通过从序列 b 中删除若干(可能为零或全部)元素得到,则称 a 是 b 的一个子序列。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 m(1≤n,m≤2⋅105),分别表示字符串 a 和 b 的长度。
每个测试用例的第二行包含一个长度为 n 的二进制字符串 a。
每个测试用例的第三行包含一个长度为 m 的二进制字符串 b。
保证所有测试用例中 n 的总和不超过 2⋅105,所有测试用例中 m 的总和也不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数,表示最大的 k,使得 a 的前 k 个字符构成 b 的一个子序列。
输入输出样例
输入#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
输出#1
2 2 1 1 3 0
说明/提示
在第一个样例中,字符串 '10' 是 '1\color{red}11\color{red}0' 的一个子序列,但字符串 '100' 不是。所以答案是 2。
在第五个样例中,a=′100′,b=′11010′,整个字符串 a 是字符串 b 的一个子序列。所以答案是 3。
在第六个样例中,字符串 b 不包含 '1',所以答案是 0。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?