[POJ2456]Aggressive cows

Posted skylee的OI博客

tags:

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

来源:USACO 2005 February Gold

思路:

二分牛棚相距长度,判断是否合法。

 1 #include<cstdio>
 2 #include<cctype>
 3 #include<algorithm>
 4 inline int getint() {
 5     char ch;
 6     while(!isdigit(ch=getchar()));
 7     int x=ch^0;
 8     while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^0);
 9     return x;
10 }
11 const int N=100000;
12 int n,c;
13 int x[N];
14 inline bool check(const int k) {
15     int cnt=0,l=0;
16     for(int i=1;i<n;i++) {
17         if(x[i]-x[l]>=k) {
18             cnt++;
19             l=i;
20         }
21     }
22     return cnt+1>=c;
23 }
24 int main() {
25     n=getint(),c=getint();
26     for(int i=0;i<n;i++) x[i]=getint();
27     std::sort(&x[0],&x[n]);
28     int l=0,r=x[n-1]-x[0];
29     while(l<r) {
30         int mid=(l+r)>>1;
31         if(check(mid)) {
32             l=mid+1;
33         }
34         else {
35             r=mid;
36         }
37     }
38     printf("%d\n",l-1);
39     return 0;
40 }

 

以上是关于[POJ2456]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