poj 2456 Aggressive cows (二分求最大值)

来源:互联网 发布:judy兔子 知乎 编辑:程序博客网 时间:2024/06/07 14:26

题意:有n间牛房,然后有k头牛,问每头牛最大可以间隔多少。
换了种写法~

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;int n,c;const int maxn= 100005;int a[maxn];int ok(int mid){    int num=1,dis=a[0];    for(int i=1;i<n;i++)    {        if(a[i]-dis>=mid) {num++;dis=a[i];}    }    if(num>=c) return 1;    else return 0;}int main(){    scanf("%d %d",&n,&c);    for(int i=0;i<n;i++)        scanf("%d",&a[i]);    sort(a,a+n);    int l=0,r=a[n-1]+1;    int res=0;    while(l<=r)    {        int mid=l+(r-l)/2;        if(ok(mid)) {res=mid;l=mid+1;}        else r=mid-1;    }    printf("%d\n",res);    return 0;}
0 0
原创粉丝点击