CF1690D Black and White Stripe

题目描述

你有一条长度为 $n$ 的棋盘纸带。每个格子要么是白色,要么是黑色。 你需要将最少多少个白色格子重新染成黑色,才能在纸带上得到一段长度为 $k$ 的连续黑色格子? 如果输入数据中已经存在一段长度为 $k$ 的连续黑色格子,则输出 $0$。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 接下来是 $t$ 组测试用例的描述。 每组测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 2\cdot10^5$)。第二行是由字母 'W'(白色)和 'B'(黑色)组成的字符串,长度为 $n$。 保证所有测试用例中 $n$ 的总和不超过 $2\cdot10^5$。

输出格式

对于每组测试用例,输出一个整数,表示至少需要将多少个白色格子染成黑色,才能得到一段长度为 $k$ 的连续黑色格子。

说明/提示

在第一个测试用例中,$s$="BBWBW",$k=3$。只需将 $s_3$ 染黑,得到 $s$="BBBBW"。此时字符串中包含一段长度为 $k=3$ 的连续黑色格子。 在第二个测试用例中,$s$="BBWBW",$k=5$。只需将 $s_3$ 和 $s_5$ 染黑,得到 $s$="BBBBB"。此时字符串中包含一段长度为 $k=5$ 的连续黑色格子。 在第三个测试用例中,$s$="BBWBW",$k=1$。字符串 $s$ 已经包含一段长度为 $k=1$ 的连续黑色格子。 由 ChatGPT 4.1 翻译