zoukankan      html  css  js  c++  java
  • [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
    ",l-1);
    39     return 0;
    40 }
  • 相关阅读:
    日志
    JAVA字符串类
    JAVA包
    JAVA面向对象
    JAVA数组
    JAVA循环结构
    JAVA程序调试
    JAVA条件判断
    JAVA算术运算符
    JAVA数据类型
  • 原文地址:https://www.cnblogs.com/skylee03/p/7337278.html
Copyright © 2011-2022 走看看