NYOJ 5177 疯牛(最大化最小值 二分搜索)
生活随笔
收集整理的這篇文章主要介紹了
NYOJ 5177 疯牛(最大化最小值 二分搜索)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目鏈接:http://115.159.40.116/problem_show.php?pid=5177
題目描述
農(nóng)夫 John 建造了一座很長的畜欄,它包括N (2 <= N <= 100,000)個(gè)隔間,這些小隔間依次編號(hào)為x1,...,xN (0 <= xi <= 1,000,000,000).但是,John的C (2 <= C <= N)頭牛們并不喜歡這種布局,而且?guī)最^牛放在一個(gè)隔間里,他們就要發(fā)生爭斗。為了不讓牛互相傷害。John決定自己給牛分配隔間,使任意兩頭牛之間的最小距離盡可能的大,那么,這個(gè)最大的最小距離是什么呢?
輸入
有多組測試數(shù)據(jù),以EOF結(jié)束。第一行:空格分隔的兩個(gè)整數(shù)N和C
第二行——第N+1行:分別指出了xi的位置
輸出
每組測試數(shù)據(jù)輸出一個(gè)整數(shù),滿足題意的最大的最小值,注意換行。樣例輸入
5 3 1 2 8 4 9樣例輸出
3
分析:這是一個(gè)最小值最大化的問題。先對(duì)隔間編號(hào)從小到大排序,則最大距離不會(huì)超過兩端的兩頭牛之間的差值,最小值為0。所以我們可以通過二分枚舉最小值來求。假設(shè)當(dāng)前的最小值為x,如果判斷出最小差值為x時(shí)可以放下C頭牛,就先讓x變大再判斷;如果放不下,說明當(dāng)前的x太大了,就先讓x變小然后再進(jìn)行判斷。直到求出一個(gè)最大的x就是最終的答案。
實(shí)現(xiàn)一:
實(shí)現(xiàn)二(比上一個(gè)快點(diǎn)):
資料鏈接:http://blog.csdn.net/lyhvoyage/article/details/23261973
總結(jié)
以上是生活随笔為你收集整理的NYOJ 5177 疯牛(最大化最小值 二分搜索)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Duff in Love
- 下一篇: maven--私服的搭建(Nexus的使