POJ 2456 Aggressive cows

Posted IKnowYou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 2456 Aggressive cows相关的知识,希望对你有一定的参考价值。

 

利用二分思想:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

typedef long long ll;
const int MAXN=1000000;
int a[MAXN];
int N,M;
bool calc(int mid){
    int last=0;
    for(int i=1;i<M;i++){
        int crt=last+1;

        while(crt<N&&a[crt]-a[last]<mid)
            crt++;
        if(crt==N) return false;
        last=crt;
    }
    return true;
}

void solve(){
    sort(a,a+N);

    int right=a[N-1],left=0;

    while(right-left>1){
        int mid=(right+left)/2;
        if(calc(mid))
            left=mid;
        else right=mid;
    }

    printf("%d\\n",left);
}

int main(){
    while(cin>>N>>M){
        for(int i=0;i<N;i++)
            cin>>a[i];
        solve();
    }
}

 

以上是关于POJ 2456 Aggressive cows的主要内容,如果未能解决你的问题,请参考以下文章

POJ - 2456 Aggressive cows

POJ 2456 Aggressive cows (二分 基础)

POJ 2456 Aggressive cows

POJ 2456 Aggressive cows(二分答案)

POJ 2456 Aggressive cows

[POJ2456]Aggressive cows