CFCF2154A.Notelock

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Teto 正在玩热门音游 osu!。这个游戏可以用一个二进制字符串 ss(长度为 nn)和一个正整数 kk 来描述,其中会依次发生以下事情:

  • 你可以选择字符串 ss 中的一些位置进行保护。
  • 然后对于每一个 ii1in1 \le i \le n),Teto 按顺序可以将 sis_i 变为 00,如果满足以下所有条件:
    • si=1s_i = 1
    • sis_i 没有被保护;
    • k1k-1 个元素中没有 11。更形式化地说,smax(1,ik+1),,si1s_{\max(1, i-k+1)},\ldots,s_{i-1} 中没有出现 11

你不喜欢 Teto(出于某些原因)。所以你想要让她无法改变 ss,即 ss 保持不变,请问你最少需要保护多少个位置?

^* 一个二进制字符串仅包含字符 0011

输入格式

输入包含多组测试用例。第一行为测试用例个数 tt1t1001 \le t \le 100)。接下来每组测试用例如下:

每组测试的第一行包含两个整数 nnkk2n10002 \le n \le 10002kn2 \le k \le n),分别表示字符串的长度和 kk 的值。

每组测试的第二行为一个长度为 nn 的二进制字符串 ss,仅包含字符 0011

所有测试用例中 nn 的总和不超过 10001000

输出格式

每组测试用例,输出一个整数,表示你需要保护的最少位置数,才能使 Teto 无法改变字符串。

输入输出样例

  • 输入#1

    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
    1
    4
    1
    1
    1
    1
    0

说明/提示

对于第一个测试用例,你可以保护第一个元素,此时 s=11s = \mathtt{\color{red}{1}1}。Teto 无法改变 s1s_1,因为它已被保护,同时也无法改变 s2s_2,因为 s1=1s_1 = 1。可以证明这是最优方案。

对于第二个测试用例,你只需要保护第一个元素,此时 s=100001s = \color{red}{\mathtt{1}}\mathtt{00001}。Teto 无法改变 s1s_1,因为它被保护;也无法改变 s6s_6,因为在前 k1k-1 个元素中存在 11100001\color{blue}{\mathtt{10000}}\mathtt{1})。

对于第四个测试用例,你需要保护 s1,s3,s5,s7s_1,s_3,s_5,s_7,此时 s=1010101s = \mathtt{\color{red}{1}0\color{red}{1}0\color{red}{1}0\color{red}{1}}。可以证明这是最优解。例如,如果你没有保护 s3s_3,那么 Teto 可以将其改为 001010101\mathtt{\color{red}{1}\color{blue}{0}10\color{red}{1}0\color{red}{1}})。

首页