#713. 保护字符串
保护字符串
题目描述
Teto 在玩节奏游戏 osu!。游戏可以用一个二进制字符串 (长度为 )和正整数 描述,按如下顺序发生:
-
. 你选择在 中若干位置进行保护。
-
. 然后按 从 到 的顺序处理:若同时满足下列三条,则 Teto 可以把 设为 (即将该位从
1变为0):- ;
- 位置 未被保护;
- 前 个元素中不包含
1,即在区间 中不存在1。
你不喜欢 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 将任意未保护的
1变为0。
数据范围
- ;
- 对每个测试用例,;
- 所有测试用例中 。