求助 84分
查看原帖
求助 84分
419941
LOVE_ZLY楼主2022/6/19 15:18
#include<bits/stdc++.h>
using namespace std;
long long n,k;
char a[1000001],c[2]={'N','F'};
int check(int x) {
	int num=0,p=0,qp=0;
	char pd=a[1];
	for(int i=1; i<=n; i++) {
		if(pd==a[i]) {
			p++;
		} else {
			p=1;
			pd=a[i];
		}
		if(x<p) pd=a[i+1],p=0,num++;
	}
	if(num<=k) return true;
	else return false;
}
int main() {
	cin>>n>>k;
	int p=0;
	for(int i=1; i<=n; i++) {
		cin>>a[i];
		if(a[i]==c[i%2]) p++;
	}
    if(p<=k||n-p<=k)
    	{cout << 1; return 0;}
	long long l=0,r=n/k+1,mid;
	while(l<=r) {
		mid=(l+r)/2;
		if(check(mid)) {
			r=mid-1;
		} else l=mid+1;
	}
	cout<<l;
	return 0;
}
2022/6/19 15:18
加载中...