二分贪心 E
来源:互联网 发布:java分布式架构有哪些 编辑:程序博客网 时间:2024/05/22 06:43
题目:
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
* Lines 2..N+1: Line i+1 contains an integer stall location, xi
Output
Sample Input
5 312849
Sample Output
3
Hint
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.
分析:
经典的二分问题;
代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
const int maxn=100002;
const int inf=0x7fffffff;
int x[maxn];
int n,c;
bool ok(int m)
{
int last=0;
for(int i=1;i<c;i++)
{
int cur=last+1;
while(cur<n&&x[cur]-x[last]<m)
cur++;
if(cur==n)
return 0;
last =cur;
}
return true;
}
int main()
{
cin>>n>>c;
for(int i=0;i<n;i++)
scanf("%d",&x[i]);
sort(x,x+n);
int l=0,r=inf;
for(int i=0;i<100;i++)
{
int m=(l+r)/2;
if(ok(m))
l=m;
else r=m;
}
cout<<l<<endl;
return 0;
}
- 二分贪心专题E
- 二分贪心 E
- 二分贪心 E
- 二分贪心 E题
- 二分贪心—E
- 二分贪心-E
- 二分贪心e
- ACM-二分贪心E-05
- 二分贪心——E
- 二分贪心练习--E(牛的距离)
- Codeforces #227(Div2) E. George and Cards 贪心+二分
- 二分贪心 E 找距离最大的最小值
- Codeforces 807E Prairie Partition 贪心思维+二分
- 二分+贪心
- 贪心 + 二分
- 贪心二分
- 贪心+二分
- Codeforces Round #389 (Div. 2) E. Santa Claus and Tangerines 二分+贪心+记忆化搜索
- Linux(十一):模拟实现sleep、竞态条件
- ##VIM命令行和Git命令
- PHP中数组定义的几种方法
- 阶乘因式分解(一)
- 前端工程师技能之photoshop巧用系列第二篇——测量篇
- 二分贪心 E
- 一只大二狗的Android历程--JSon解析
- OpenCV中与matlab中相对应的函数
- 前端工程师技能之photoshop巧用系列第一篇——准备篇
- 倒计时button(借鉴CountDownButton)
- Windows系统服务与用户进程共享内存
- OpenCV中对数组(矩阵)的常用操作
- 编译windows程序遇到fatal error C1189 #error No Target Architecture
- XML解析之PULL