大佬们,帮帮小弟吧!
查看原帖
大佬们,帮帮小弟吧!
1008792
abch11楼主2023/6/24 20:50
#include<iostream>
#include<cmath>
#include<algorithm>

using namespace std;
int N,M,num,a[1000000];
long long L,ans;

int main(){
    cin>>L>>N>>M;
    for(int i=0;i<N;i++)cin>>a[i];
    for(int i=N-1;i>0;i--)a[i]-=a[i-1];
    long long low=0,high=L,mid;
    while(low<=high){
        mid=low+(high-low)/2;
        //判断该值可不可行
        num=0;
        for(int i=0;i<N;i++){
            if(a[i]<mid){
                a[i+1]+=a[i];num++;
            }
            if(num>M)break;
        }
        if(num>M)high=mid-1;
        else low=mid;
        
    }
    cout<<high<<endl;
    return 0;
}

大佬们,帮帮忙吧,改了好久了,还是找通不过,,我太菜了。。。

2023/6/24 20:50
加载中...