蒟蒻求助,WA#1和#10
查看原帖
蒟蒻求助,WA#1和#10
173918
swl3992楼主2020/6/13 16:16

rt

想着二分答案,check 函数中每相邻两个如果大于 mid 就计算要多少个。

结果 WA #1 和 #10

Code:

#include <bits/stdc++.h>
using namespace std;
int l,n,k;
int sign[100005];
bool check(int x)
{
    int count=0;
    for(int i=1;i<n;i++)
    {
        if(sign[i]-sign[i-1]>x)
        {
            count+=(sign[i]-sign[i-1])/x;
        }
    }
    return count<=k;
}
int main()
{
    cin>>l>>n>>k;
    for(int i=0;i<n;i++)
    {
        int a;
        cin>>a;
        sign[i]=a;
    }
    int L=0,R=1000000;
    int ans;
    while(L<=R)
    {
        int mid=(L+R)/2;
        if(check(mid))
        {
            R=mid-1;
            ans=mid;
        }
        else
        {
            L=mid+1;
        }
    }
    cout<<ans;
    return 0;
}

求助大佬。。。

2020/6/13 16:16
加载中...