題目描述
原題來自:usaco 2005 feb. gold
農夫約翰建造了一座有 nnn 間牛舍的小屋,牛舍排在一條直線上,第 iii 間牛舍在 xix_ixi 的位置,但是約翰的 mmm 頭牛對小屋很不滿意,因此經常互相攻擊。約翰為了防止牛之間互相傷害,因此決定把每頭牛都放在離其它牛盡可能遠的牛舍。也就是要最大化最近的兩頭牛之間的距離。
牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間裡,它們就要發生爭鬥。為了不讓牛互相傷害。john 決定自己給牛分配隔間,使任意兩頭牛之間的最小距離盡可能的大,那麼,這個最大的最小距離是多少呢?
輸入格式
第一行用空格分隔的兩個整數 nnn 和 mmm;
第二行為 nnn 個用空格隔開的整數,表示位置 xix_ixi。
輸出格式
輸出僅乙個整數,表示最大的最小距離值。
樣例
樣例輸入
5 3
1 2 8 4 9
樣例輸出
3
樣例解釋
把牛放在 111, 444 ,888 這樣最小距離是 333 。
資料範圍與提示
2 ≤ n ≤10^5,0 ≤ xi ≤ 10^9, 2≤m≤n2。
我本來想去寫三分,但是我發現前面還有一些二分題,我就順道給寫了
一般都是這種最小值的最大化和最大值的最小化會用到二分吧
#include#include#include#includeusing namespace std;
int n,m;
int x[100003];
bool flag(int d)
return t >= m;//如果奶牛數多於真實值,則成立
}int main()
sort(x + 1,x + n + 1);
int l = 0,r = x[n] - x[1];//先為最大值和最小值賦值
while(l <= r)
printf("%d\n",r);
return 0;
}
SSL ZYC 憤怒的牛
題目大意 farmer john建造了乙個有n個隔間的牛棚,這些隔間分布在一條直線上,座標是x1,xn 他的c頭牛不滿於隔間的位置分布,它們為牛棚裡其他的牛的存在而憤怒。為了防止牛之間的互相打鬥,farmer john想把這些牛安置在指定的隔間,所有牛中相鄰兩頭的最近距離越大越好。那麼,這個最大的最...
PTA 憤怒的牛
農夫約翰建造了一座有 n 間牛舍的小屋,牛舍排在一條直線上,第i間牛舍在 x i 的位置,但是約翰的 m 頭牛對小屋很不滿意,因此經常互相攻擊。約翰為了防止牛之間互相傷害,因此決定把每頭牛都放在離其它牛盡可能遠的牛舍。也就是要最大化最近的兩頭牛之間的距離。牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間...
SSL ZYC 憤怒的牛
題目大意 farmer john建造了乙個有n個隔間的牛棚,這些隔間分布在一條直線上,座標是x1,xn 他的c頭牛不滿於隔間的位置分布,它們為牛棚裡其他的牛的存在而憤怒。為了防止牛之間的互相打鬥,farmer john想把這些牛安置在指定的隔間,所有牛中相鄰兩頭的最近距離越大越好。那麼,這個最大的最...