AC但有疑惑
查看原帖
AC但有疑惑
563069
UQAQU楼主2024/8/8 16:34
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
const int N=1e7+7;
int a[N],b[N];
int main()
{
    int l,n,k;
    cin>>l>>n>>k;
    for (int i=1;i<=n;i++){
		cin>>a[i];
	}
	a[n+1]=l;
	int s=0,t=l,ans=0;
	while (s<t){
		int mid=(s+t)/2,p=0;
		for (int i=1;i<=n+1;i++){
			int c=(a[i]-a[i-1]);
			if (c>mid){
				p+=(c-1)/mid;
			}
		}
		if (p>k){
			s=mid+1;
		}
		else{
			ans=mid;
			t=mid;
		}
	}
	cout<<ans<<endl;
    return 0;
}

把s=0改成s=1就能过最后一个点,为什么?

2024/8/8 16:34
加载中...