为什么我的二分RE
查看原帖
为什么我的二分RE
152053
jiunianqing楼主2022/2/26 09:12
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
long long L,n,k,a[N];
long long check(long long mid){
    long long ans=0,cnt=0;
    for(int i=1;i<=L;i++){
        cnt++;
        if(a[i]==1){
            cnt=0;
            continue;
        }
        if(cnt+1>mid){  
            ans++;
            cnt=0;
        }
    } 
    if(ans<=k){
        return 1;
    }else{
        return 0;
    }
}
int main(){
    cin>>L>>n>>k;
    long long x;
    for(int i=1;i<=n;i++){
        cin>>x;
        a[x]=1;
    }
    a[0]=1,a[L]=1;
    long long l=0,r=L;
    while(l<r){
        long long mid=(l+r)>>1;
        if(check(mid)){
            r=mid;
        }else{
            l=mid+1;
        }
    }
    cout<<l<<endl;
    return 0;
}

所以讨论版真是个好东西

有没有哪位大佬可以帮我看下为什么我的二分一直RE应该不是数组大小的问题

2022/2/26 09:12
加载中...