1 条题解

  • 1
    @ 2024-2-7 21:28:02

    这里放上AC代码,解析可以看老师的直播

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    const ll N=5e4+5;
    ll L,n,m,a[N];
    bool check(ll x){
    	ll cnt=0,last=0;
    	for(ll i=1;i<=n;i++)
    		if(a[i]-a[last]>=x&&L-a[i]>=x)
    			last=i;
    		else
    			cnt++;
    	return cnt<=m;
    }
    ll bf(){
    	ll l=1,mid,r=L;
    	while(l<=r){
    		mid=l+r>>1;
    		if(check(mid))
    			l=mid+1;
    		else
    			r=mid-1;
    	}
    	return r;
    }
    int main(){
    	scanf("%lld%lld%lld",&L,&n,&m);
    	for(ll i=1;i<=n;i++)
    		scanf("%lld",&a[i]);
    	printf("%lld",bf());
    	return 0;
    }
    
    • 1

    信息

    ID
    656
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    150
    已通过
    68
    上传者