原題
時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:4 描述
農夫 john 建造了一座很長的畜欄,它包括n (2 <= n <= 100,000)個隔間,這些小隔間依次編號為x1,...,xn (0 <= xi <= 1,000,000,000).
但是,john的c (2 <= c <= n)頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間裡,他們就要發生爭鬥。為了不讓牛互相傷害。john決定自己給牛分配隔間,使任意兩頭牛之間的最小距離盡可能的大,那麼,這個最大的最小距離是什麼呢?
輸入
有多組測試資料,以eof結束。
第一行:空格分隔的兩個整數n和c
第二行——第n+1行:分別指出了xi的位置
輸出每組測試資料輸出乙個整數,滿足題意的最大的最小值,注意換行。
樣例輸入
5 312849
樣例輸出
3
題意:往n個牛舍放m個牛,盡可能的讓兩頭牛之間距離遠,問安排好後最近的兩頭牛的距離。
題解:所求為任意的牛的間距都不小於d.
1,對牛舍位置排序。
2.第一頭牛放入x0
3.第i頭放入xj的話,第i+1頭就要放入滿足xj+d<=xk的最小的xk處。
**:#include#includeusing namespace std;
int n,m;
int a[100010];
bool search(int x)
} return false;
}int main(){
int l,r,mid;
while (scanf ("%d %d",&n,&m)!=eof){
for (int i=0;i
poj2456(二分搜尋)
題意 n間牛舍,m頭牛,最近的兩頭牛的距離為d,求d的最大值 key 二分搜尋。從0 無窮大中搜尋符合要求的值。二分搜尋 include include include include using namespace std const int maxn 1e5 int n,m int inf 1e...
POJ2456 二分搜尋
poj2456 aggressive cows 題意 有n間牛舍,牛舍被排在一條線上,第i號牛舍在xi的位置。但是他的m頭牛對小屋很不滿意,因此經產互相攻擊。為了防止牛之間互相傷害,因此決定把每頭牛都放在離其他牛盡量遠的牛舍。也就是要最大化最近的兩頭牛之間的距離。關於最小值最大化或者最大值最小化的問...
POJ 2456 二分 貪心
poj 2456的題目鏈結 emm 開始讀了有點沒讀懂,實際上大概就是告訴你,給你n個牛棚,每乙個牛棚都有它的編號,再給你c頭牛,你現在就要把這c頭牛全部丟到牛棚裡面,求出最小的兩頭有牛的牛棚編號差值中的最大的那個。這個有點繞,大概就是,把c頭牛丟到n個牛棚裡面,有很多種丟法,但每次,兩兩有牛的牛棚...