Aggressive cows http://poj.org/problem?id=2456

N间小屋,M头牛,使得牛跟牛之间的距离最远,以防止牛打架。

2<=N<=100000

2<=M<=N

0 <=xi<=109

//////////////////////////////////////////////////////////////

C(d):=可以安排牛的位置使得任意两头牛的间距都不小于d

使用二分搜索法解决:

//参考文献:挑战程序设计大赛(第二版)
/*************************************************************************
> File Name: AggressiveCows_poj2456.cpp
> Author: spzhao
> Mail: spzhaol@163.com
> Created Time: 2015年10月14日 星期三 20时25分30秒
************************************************************************/ #include<iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define INF 1000000000
using namespace std;
int N,K;
int x[100005]; bool C(int d)
{
int last = 0;
for (int i = 1;i < K;i++)
{
int crt = last+1;                    // 只需要比较K-1次找出最适合的值d来放置K头牛,用last & crt 来表示上一头牛和当前牛的位置
while(crt < N && x[crt] - x[last] < d)
crt++;
if (crt == N) return false;             // 到达最大值N说明d的值小了
last = crt;
}
return true;
}
int main ()
{
cin >> N >> K;
for (int i = 0;i < N;i++)
scanf("%d",&x[i]);
sort(x,x+N);
int l = 0,r = INF;
while(r - l > 1)
{
int mid = (l+r)/2;
if (C(mid))
l = mid;
else
r = mid;
}
printf("%d\n",l);
return 0;
}

  

最大化最小值 Aggressive cows的更多相关文章

  1. 最大化最小值poj2456Aggressive cows

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15528   Accepted: 7440 ...

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

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

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

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

  4. 二分算法的应用——最大化最小值 POJ2456 Aggressive cows

    Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Description Far ...

  5. POJ - 2456 Aggressive cows 二分 最大化最小值

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18099   Accepted: 8619 ...

  6. POJ 2456 Aggressive cows

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

  7. POJ_2456_Agressive_cows_(二分,最大化最小值)

    描述 http://poj.org/problem?id=2456 有n个小屋,线性排列在不同位置,m头牛,每头牛占据一个小屋,求最近的两头牛之间距离的最大值. Aggressive cows Tim ...

  8. POJ 2456 Aggressive cows ( 二分搜索)

    题目链接 Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The ...

  9. POJ2456(最大化最小值)

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10728   Accepted: 5288 ...

随机推荐

  1. Java反射机制示例

    链接: http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html package com.stono.reftest; imp ...

  2. loadrunner controller:集合点策略

    集合点只有在多用户并发运行的时候才能体现它的作用. Scenario ---> Rendezvous 打开集合点设置界面,如下图所示: 我们可以看到Vusers 列表框里有两个用户,这与我们设置 ...

  3. 《JAVASCRIPT高级程序设计》第五章(2)

    一.Date类型 Date类型类型用于保存日期,有以下几种创建方式: //获取当前时间 var now = new Date(); //获取当前时间的毫秒数 var nowSecond = Date. ...

  4. 史上最牛逼的文件bom头清除代码,万能检测清除php,js等等

    做php开发,经常部分uft8的php文件因BOM头不同导致各种错误和错位.网上搜到的大部分所谓的去处bom工具都是2货,没有能用的.下面的一段代码,请复制到一个php文件里,然后上传到你的网站根目录 ...

  5. 安卓TCP通信

    tCPServer.java 服务器的两个socket都没有关闭:s,ss.两个都是一直开启,然后数据才有显示 class tcpServer { public static void main(St ...

  6. MySQL索引创建、删除、查看

    主键索引   PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引.这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引. ALTER TABLE ...

  7. BZOJ 1062: [NOI2008]糖果雨(二维树状数组)

    首先嘛,这道题是非同一般的恶心= = 然后首先膜拜一下CDQ大神ORZ在考场上A了这道题ORZ 这道题看到的话,我是先想把云朵化成在0s时的位置,但很容易发现这样只能单点查询而不能查询整段 结果只能膜 ...

  8. WP8.1开发对图片进行裁剪(截取)一部分

    对于这个内容,我是在学习插入图片时遇到的问题,在Windows应用中可以直接用Image类和Bitmap直接实现裁剪功能, 在wp上就不行了,后来在MSDN论坛上找到了相关方法及示例,而示例太复杂了, ...

  9. [笔记]关于支持向量机(SVM)中 SMO算法的学习(一)理论总结

    1. 前言 最近又重新复习了一遍支持向量机(SVM).其实个人感觉SVM整体可以分成三个部分: 1. SVM理论本身:包括最大间隔超平面(Maximum Margin Classifier),拉格朗日 ...

  10. XML与JavaScript知识

    什么是XMLHttpRequest 对象? 答:XMLHttpRequest 对象用于在后台与服务器交换数据,它是开发者的梦想,因为它能够:1.在不重新加载页面的情况下更新网页:2.在页面已加载后从服 ...