CF2126B.No Casino in the Mountains

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

No Casino in the Mountains

题目描述

给定一个长度为 nn 的数组 aa 和一个数字 kk。数组 aa 的第 ii 天的值 aia_i 描述了当天的天气:如果第 ii 天下雨,则 ai=1a_i = 1;否则,如果天气晴朗,则 ai=0a_i = 0

Jean 想要尽可能多地登顶。每次登顶需要恰好 kk 天,并且在这 kk 天内,每一天的天气都必须是晴朗的(即 ai=0a_i = 0)。也就是说,Jean 只能在第 ii 天开始登顶,当且仅当对于所有 jj 满足 iji+k1i \leq j \leq i + k - 1,都有 aj=0a_j = 0

每次登顶后,Jean 必须至少休息一天,也就是说,在完成一次登顶后的第二天,他不能再次开始登顶。

请你计算 Jean 最多能登顶多少次。

输入格式

每组测试数据包含若干组测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的组数。接下来是每组测试用例的描述。

每组测试用例的第一行包含两个整数 nnkk1n1051 \le n \le 10^51kn1 \le k \le n)。

第二行包含 nn 个数字 aia_iai{0,1}a_i \in \{0, 1\}),其中 aia_i 表示第 ii 天的天气情况。

保证所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每组测试用例,输出一个整数,表示 Jean 最多能登顶多少次。

说明/提示

在第一个样例中:

  • 11 天——天气晴朗,Jean 登顶一次(a1=0a_1 = 0)。
  • 22 天——强制休息。
  • 33 天——再次天气晴朗,Jean 登顶第二次(a3=0a_3 = 0)。
  • 44 天——休息。
  • 55 天——天气晴朗,第三次登顶(a5=0a_5 = 0)。

因此,Jean 最多可以登顶 33 次,每次登顶之间都要休息一天。

在第二个样例中:

  • 11 天到第 33 天——连续三天晴朗,Jean 登顶一次(a1=a2=a3=0a_1 = a_2 = a_3 = 0)。
  • 44 天——强制休息。
  • 55 天到第 77 天——又是连续三天晴朗,Jean 登顶第二次(a5=a6=a7=0a_5 = a_6 = a_7 = 0)。

总共 Jean 可以登顶 22 次。

在第三个样例中:

  • 没有一天是晴朗的(所有 ai=1a_i = 1)。

Jean 无法登顶,答案为 00

由 ChatGPT 4.1 翻译

样例

5
5 1
0 1 0 0 0
7 3
0 0 0 0 0 0 0
3 1
1 1 1
4 2
0 1 0 1
6 2
0 0 1 0 0 0
3
2
0
0
2

在线编程 IDE

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