Aggressive cows

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.

这里总结一下Can you solve this equation?   Cable Master   Agressive Cows这几题共同的模板特性。

1.设定二分的左右边界,甚至可以直接设l=0,r=INF,因为二分的复杂度非常低,logn,所以不费力去找出符合题目逻辑的上界下界也不会对运算时间造成太大负担;

2.whie(r-l>EPS)的循环里是解决问题逻辑上的核心代码,表达了二分的过程;

3.judge函数其实才是每个题目最具有个性的地方,结合具体的题目设定不同的判定条件,来依靠判定条件判定上下界的变化过程

猜你喜欢

转载自blog.csdn.net/xuzonghao/article/details/79796196
今日推荐