time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given a strip of paper?s?that is?n?cells long. Each cell is either black or white. In an operation you can take any?k?consecutive cells and make them all white.
Find the minimum number of operations needed to remove all black cells.
Input
The first line contains a single integer?t?(1≤t≤1000)?— the number of test cases.
The first line of each test case contains two integers?n?and?k?(1≤k≤n≤2?105)?— the length of the paper and the integer used in the operation.
The second line of each test case contains a string?s?of length?n?consisting of characters?B?(representing a black cell) or?W?(representing a white cell).
The sum of?n?over all test cases does not exceed?2?105.
Output
For each test case, output a single integer?— the minimum number of operations needed to remove all black cells.
Example
input
Copy
8
6 3
WBWWWB
7 3
WWBWBWW
5 4
BWBWB
5 5
BBBBB
8 2
BWBWBBBB
10 2
WBBWBBWBBW
4 1
BBBB
3 2
WWW
output
Copy
2 1 2 1 4 3 4 0
Note
In the first test case you can perform the following operations:WBWWWB→WWWWWB→WWWWWW
In the second test case you can perform the following operations:WWBWBWW→WWWWWWW
In the third test case you can perform the following operations:BWBWB→BWWWW→WWWWW文章來源:http://www.zghlxwxcb.cn/news/detail-719985.html
解題說明:此題是一道模擬題,每次只能修改連續(xù)K個位置,遍歷查找其中的B字母位置,直接將其與后面K-1個位置全變成W即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-719985.html
#include <stdio.h>
int main()
{
int t, n, k, i, j, b;
scanf("%d", &t);
for (i = 0; i < t; i++)
{
scanf("%d %d", &n, &k);
char a[200005];
scanf("%s", a);
b = 0;
for (j = 0; j < n; j++)
{
if (a[j] == 'W')
{
continue;
}
else
{
j += (k - 1);
b += 1;
}
}
printf("%d\n", b);
}
return 0;
}
到了這里,關(guān)于D. 1D Eraser的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!