#CF2154A. Notelock
Notelock
A. Notelock
每个测试的时间限制:1 秒
内存限制:256 兆字节
题目描述
Teto 正在玩热门节奏游戏 osu!。游戏可以用一个长度为 的二进制字符串 和一个正整数 来描述,游戏按以下顺序进行:
- 你会选择 中的某些位置进行保护。
- 然后对于 从 到 递增,Teto 可以在满足以下所有条件时将 设为 :
- ;
- 没有被保护;
- 前面 个元素中没有 。
形式化地说,在 中不出现 。
你(出于某种原因)不喜欢 Teto。所以请你确定最少需要保护多少个位置,才能迫使她无法改变 (即 保持不变)。
输入格式
每个测试包含多个测试用例。第一行包含测试用例数 ()。
每个测试用例的描述如下:
- 第一行包含两个整数 和 (,)——字符串 的长度和参数 。
- 第二行包含一个长度为 的二进制字符串 ,由字符
0和1组成。
所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一个整数——最少需要保护的位置数,使得 Teto 无法改变字符串。
示例
输入:
9
2 2
11
6 6
100001
5 3
10000
7 2
1010101
7 4
0000001
3 3
010
3 2
011
7 4
1001001
8 3
00000000
输出:
1
1
1
4
1
1
1
1
0
说明
-
对于第一个测试用例,你可以保护第一个元素:。
此时 Teto 不能改变 (因为被保护),也不能改变 (因为 在它前面的 个元素中)。可以证明这是最优的。 -
对于第二个测试用例,你可以只保护第一个元素:。
Teto 不能改变 (被保护),也不能改变 (因为前面的 个元素中有 )。 -
对于第四个测试用例,你必须保护 ,得到 。可以证明这是最优的。
例如,如果不保护 ,Teto 可以把它改为 ()。