题解
2023-08-20 14:18:35
发布于:广东
38阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
long long L,n,m,q,a[10000005];
long long f(int x)
{
int count=0,last=0;
for(int i=1;i<=n;i++) if(a[i]-last<x)count++; else last=a[i];
if(count>m) return 0;
return 1;
}
int main(){
ios::sync_with_stdio(0);
cin>>L>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
a[n+1]=L;
int l=0,r=L;
while(l<=r){
long long mid=(l+r)/2;
if(f(mid))l=mid+1,q=mid;
else r=mid-1;
}
cout<<q;
return 0;
}
经典二分
这里空空如也
有帮助,赞一个