20分求助
查看原帖
20分求助
371927
REAL_曼巴楼主2022/8/25 15:14
#include<bits/stdc++.h>
using namespace std;
int n,k;
char s[100001];
bool check(int x){
	int cnt=1,num=0;
	for(int i=1;i<=n;i++){
		if(s[i]==s[i-1])cnt++;
		if(cnt>x){
			if(s[i]=='N')s[i]='F';
			else s[i]='N';
			num++,cnt=1;
		}
	}
	return num>k;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>s[i];
	int l=2,r=n,mid;
	while(l<r){
		mid=(l+r)>>1;
		if(check(mid)) l=mid+1;
		else r=mid;
	}
	cout<<l;
	return 0;
} 
2022/8/25 15:14
加载中...