POJ 2456 Aggressive cows
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24838 Accepted: 11537 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 Hint
OUTPUT DETAILS:
FJ can put his 3 cows in the stalls at positions 1, 4 and 8, resulting in a minimum distance of 3.
Huge input data,scanf is recommended. Source
USACO 2005 February Gold
二分,看代码能懂,没什么坑~
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int INF = 1e9 + 5;
const int maxn = 1e5 + 5;
int n, k, x[maxn];
int check(int d)
{
int last = 0;
for(int i = 1; i < k; i++)
{
int cur = last + 1;
while(cur < n && x[cur] - x[last] < d)
cur++;
if(cur == n) return 0;
last = cur;
}
return 1;
}
int main()
{
while(~scanf("%d%d", &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(check(mid)) l = mid;
else r = mid;
}
printf("%dn", l);
}
return 0;
}
- 【第二期】一次学透java.io
- [喵咪BELK实战(1)]浅谈日志的重要性以及介绍BELK
- Unicode编解码函数
- 适配器模式
- [PhalApi实战篇(1)]Redis队列处理异步任务
- 修饰者模式
- PhalApi-RabbitMQ基于PhalApi专业队列拓展
- Python的三个问题
- [喵咪开源软件推荐(4)]Liunx跑分神器-unixbench
- 正则化贪心森林(RGF)的入门简介,含案例研究
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(二)之分库分表路由
- [喵咪开源软件推荐(3)]全球IP库-GeoLite2-City
- [喵咪MQ(3)]RabbitMQ集群安装配置
- 动态实现指定图片半透明及鼠标事件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android的八种对话框的实现代码示例
- Android使用RecyclerView实现今日头条频道管理功能
- Liunx(centos8)下的yum的基本用法和实例(推荐)
- Android中LeakCanary检测内存泄漏的方法
- Linux 查看磁盘IO并找出占用IO读写很高的进程
- Android实现简单的拨号器功能
- Android调用系统自带浏览器打开网页的实现方法
- Linux之删除带有空格的文件(不是目录)
- Android自定义AvatarImageView实现头像显示效果
- 如何使用win10内置的linux系统启动spring-boot项目
- Android 实现单线程轮循机制批量下载图片
- Android开发之项目模块化实践教程
- Linux centos7 下安装 phpMyAdmin的教程
- 简单学习Android TextView
- Android 滑动返回Activity的实现代码