二分答案路标设置求助……
查看原帖
二分答案路标设置求助……
516867
SZnP楼主2023/3/5 14:30

先后30pts,40pts,60pts,70pts,几乎每一个点都对过……

70pts代码:

#include <bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
typedef int Int;
using namespace std;
int l,n,k,road[100010];
void Input()
{
    scanf("%d%d%d",&l,&n,&k);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&road[i]);
    }
    return;
}
bool isok(int t)
{
    int cur=0,ink=1,ed=k;
    while(ink<=n)
    {
        if(road[ink]-cur<t){cur=road[ink];ink++;}
        else{
            if(ed<=0){return false;}
            ed--;cur+=t;
        }
    }
    return true;
}
void Work()
{
    int le=0,ri=l,mi;
    while(ri>=le)
    {
        mi=le+(ri-le)/2;
        if(isok(mi))ri=mi-1;
        else le=mi+1;
    }
    cout<<mi;

}
int main()
{
   Input();
   Work();
    return 0;
}

感谢dalao STO

2023/3/5 14:30
加载中...