二分初学者求助
其实是忘光了回来复习
症状诊断:不出结果
#include<bits/stdc++.h>
using namespace std;
bool check(string s,int tm,int l){
int tma;
for(int i=0;i<s.length()-1;i++){
if(s[i]=='0')continue;
for(int j=i;j<i+l-1;j++){
s[j]='0';
}
tma++;
}
if(tma>tm){
return false;
}
else{
return true;
}
}
int solve(int n,int k,string s){
int l,m,r;
l=1;r=n;m=(l+r)/2;
while(l<=r){
if(check(s,k,m)){
r=m;
}
else{
l=m;
}
}
return m;
}
int main(){
int T,n,k;
string s;
cin>>T;
for(int i=0;i<=T;i++){
cin>>n>>k;
cin>>s;
cout<<solve(n,k,s);
}
return 0;
}
玄关