zoukankan      html  css  js  c++  java
  • 二分搜索 POJ 2456 Aggressive cows

    题目传送门

     1 /*
     2     二分搜索:搜索安排最近牛的距离不小于d 
     3 */
     4 #include <cstdio>
     5 #include <algorithm>
     6 #include <cmath>
     7 using namespace std;
     8 
     9 const int MAXN = 1e5 + 10;
    10 const int INF = 0x3f3f3f3f;
    11 int x[MAXN];
    12 int n, m;
    13 
    14 bool check(int d)   {
    15     int last = 1;
    16     for (int i=1; i<=m-1; ++i)    {
    17         int cur = last + 1;
    18         while (cur <= n && x[cur] - x[last] < d)    cur++;
    19         if (cur == n + 1)   return false;
    20         last = cur;
    21     }
    22     return true;
    23 }
    24 
    25 int main(void)  {       //POJ 2456 Aggressive cows 
    26     //freopen ("POJ_2456.in", "r", stdin);
    27 
    28     while (scanf ("%d%d", &n, &m) == 2)   {
    29         for (int i=1; i<=n; ++i)    {
    30             scanf ("%d", &x[i]);
    31         }
    32 
    33         sort (x+1, x+1+n);
    34         int l = 0, r = INF;
    35         while (l + 1 < r)   {
    36             int mid = (l + r) >> 1;
    37             if (check (mid))    l = mid;
    38             else    r = mid;
    39         }
    40         printf ("%d
    ", l);
    41     }
    42 
    43     return 0;
    44 }
    编译人生,运行世界!
  • 相关阅读:
    国外保健品品牌介绍
    海淘第一单
    表查询语句与方法
    表与表关系
    表完整性约束
    表字段数据类型
    存储引擎
    数据库之MySQL基本操作
    MAC重置MySQL root 密码
    进程池、线程池、协程
  • 原文地址:https://www.cnblogs.com/Running-Time/p/4676385.html
Copyright © 2011-2022 走看看