首页 > 代码库 > BZOJ 4525 二分

BZOJ 4525 二分

思路:

满足二分性质...

二分一下      就完了

//By SiriusRen#include <cstdio>#include <algorithm>using namespace std;int n,k,a[500050],ans;bool check(int x){    int rec=0;    for(int i=1;i<=n;){        int temp=a[i]+2*x;rec++;        while(a[i]<=temp&&i<=n)i++;    }return rec<=k;}int main(){    scanf("%d%d",&n,&k);    for(int i=1;i<=n;i++)scanf("%d",&a[i]);    sort(a+1,a+1+n);    int l=0,r=0x3f3f3f3f;    while(l<=r){        int mid=(l+r)>>1;        if(check(mid))ans=mid,r=mid-1;        else l=mid+1;    }printf("%d\n",ans);}

 

BZOJ 4525 二分