前言
题意 :
给定一个只含有
B
W
BW
BW的字符串,询问最少修改多少次,使得至少有一段连续的
B
B
B至少是
K
K
K个
思路 :
我们设
W
W
W的贡献是
1
1
1,对字符串计算一次 前缀贡献,我们贪心的只取
K
K
K个连续的最小代价即可
code :
int sum[N];
int n,k;
void solve(){
cin>>n>>k;
string s;cin>>s;
s = " "+s;
for(int i=1;i<=n;i++)
sum[i] = sum[i-1]+(s[i]=='W'?1:0);
int res = INF;
for(int i=k;i<=n;i++)
res = min(res,sum[i] - sum[i-k]);
cout<<res<<endl;
}
int main(){
int t;cin>>t;while(t--)
solve();
return 0 ;
}