Aggressive cows

Time Limit: 1000MS Memory Limit: 65536K Total

Submissions: 28666 Accepted: 13146 Description

Farmer John has built a new long barn, with N (2 <= N <= 100,000)

stalls. The stalls are located along a straight line at positions

x1,…,xN (0 <= xi <= 1,000,000,000).

His C (2 <= C <= N) cows don’t like this barn layout and become

aggressive towards each other once put into a stall. To prevent the

cows from hurting each other, FJ want to assign the cows to the

stalls, such that the minimum distance between any two of them is as

large as possible. What is the largest minimum distance? Input

  • Line 1: Two space-separated integers: N and C

  • Lines 2…N+1: Line i+1 contains an integer stall location, xi Output

  • Line 1: One integer: the largest minimum distance

Sample Input

5 3
1
2
8
4
9
Sample Output 3

解题思路

题意:把m有牛放入n个牛棚,要求让每头牛值简单距离尽可能的大,输出,m头牛之间的 最小的那个距离。

思路 :这题看着很难想,看着数据那么大不知道怎么做,但是只要我要应用二分的思想我们就可以非常容易的解决这个题了:首先我们规定 最小距离为 mn,最大距离 mx为1e9,距离的中间值mid = (mn + mx)/ 2,那么 我们假设 mid就是每头cow之间间隔的最小距离,有了这个假设距离mid,我们在遍历一下所给的牛棚看能不能把所有的奶牛以 mid间距为限制条,能不能把所有的m头奶牛放进去,如果可以就用 ans记录这个可行的mid答案(但不一定是最的答案),这个时候为了求最有优答案,我们再次做假设,能不能假设 奶牛的间距跟大一些呢??,这个时候我们可以调整最小距离的下限mn为mid + 1,这样在二分的时候,我们假设的距离mid自然而然的变成了 mid = (mn + mx) / 2,假设个距离变得更大了,这样再次遍历牛棚看能不能把所有的cow放下,如果能那就继续改变距离下限mm以增大我们假设个距离 mid;如果不能能放下所有的奶牛,说明我们那假设的距离mid 太大了,那么我们就调整上限 让mx = mid - 1 , 来缩小我么你假设的距离,。。。。。。。这样通过不断的缩小我们就可以得到最后的答案了

Aggressive cows(二分法)的更多相关文章

  1. 二分法的应用:最大化最小值 POJ2456 Aggressive cows

    /* 二分法的应用:最大化最小值 POJ2456 Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: ...

  2. POJ2456 Aggressive cows

    Aggressive cows 二分,关键是转化为二分! #include <cstdio> #include <algorithm> ; ; int N, C; int a[ ...

  3. [ACM] poj 2456 Aggressive cows (二分查找)

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5436   Accepted: 2720 D ...

  4. POJ 2456 Aggressive cows

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11192   Accepted: 5492 ...

  5. BZOJ 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛( 二分答案 )

    最小最大...又是经典的二分答案做法.. -------------------------------------------------------------------------- #inc ...

  6. 疯牛-- Aggressive cows (二分)

    疯牛 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小 ...

  7. 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛

    1734: [Usaco2005 feb]Aggressive cows 愤怒的牛 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 217  Solved: ...

  8. 最大化最小值 Aggressive cows

    Aggressive cows http://poj.org/problem?id=2456 N间小屋,M头牛,使得牛跟牛之间的距离最远,以防止牛打架. 2<=N<=100000 2< ...

  9. poj 2456 Aggressive cows && nyoj 疯牛 最大化最小值 二分

    poj 2456 Aggressive cows && nyoj 疯牛 最大化最小值 二分 题目链接: nyoj : http://acm.nyist.net/JudgeOnline/ ...

随机推荐

  1. Lucene查询语法汇总

    目录 一.单词查询 二.通配符查询 三.模糊查询 四.近似查询 五.范围查询 六.优先级查询 七.逻辑操作 八.括号分组 九.转义特殊字符 Lucene是目前最为流行的开源全文搜索引擎工具包,提供了完 ...

  2. Core + Vue 后台管理基础框架1——运行系统

    1.down源码 git clone https://github.com/KINGGUOKUN/SystemManagement.git,项目目录如下: 2.还原数据库 找到项目根目录下System ...

  3. drf(请求封装/认证/权限/节流)

    1.请求的封装 class HttpRequest(object): def __init__(self): pass @propery def GET(self): pass @propery de ...

  4. Python之locust踩坑指北

    坑点1:locust安装报错 其中一种情况:error:Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visua ...

  5. Logitech k480 蓝牙键盘连接 ubuntu 系统

    k480 能同时连接三台蓝牙设备,支持 Windows.Android.Chrome.Mac OS X 和 iOS 系统.奈何官方并不支持 Ubuntu. 有压迫就有反抗,呃...,不对,总是有办法在 ...

  6. kafka集群搭建及结合springboot使用

    1.场景描述 因kafka以前用的不多,只往topic中写入和读取过数据,这次刚好又要用到,记录下kafka集群搭建及结合springboot使用. 2. 解决方案 2.1 简单介绍 (一)关于kaf ...

  7. synchronized实现原理及其优化-(自旋锁,偏向锁,轻量锁,重量锁)

    1.synchronized概述: synchronized修饰的方法或代码块相当于并发中的临界区,即在同一时刻jvm只允许一个线程进入执行.synchronized是通过锁机制实现同一时刻只允许一个 ...

  8. 【vue生命周期】- 详解

    这篇文章通俗易懂,写的不错,本文转载至:https://www.cnblogs.com/happ0/p/8075562.html 详解Vue Lifecycle 先来看看vue官网对vue生命周期的介 ...

  9. 2. python提示:TypeError: unhashable type: 'list'

    原因是,python字典的key不支持list类型和dict类型,需要转换 错误时 将list类型强制转换成string,用"".join(list). 修改后:

  10. java web 获取 网页访问次数

    ServletContext context = request.getServletContext(); /** * 从ServletContext中获取计数器对象 */Integer count ...