二分求最小間距的最大值

2021-09-16 21:19:01 字數 709 閱讀 3291

mad jim jaspers為了證明釹磁鐵的強大,拿來了乙個有nnn個小槽的長木條,mmm個釹磁鐵,第iii個小槽在xix_ixi​的位置上,為了不讓磁鐵互相吸引,每塊磁鐵離其他磁鐵的距離應該盡可能的大。

請你幫mjj寫乙個程式,求出所有磁鐵之間最小距離的最大值。只要磁鐵距離大於等於1就不會互相吸引。

輸入格式:

第一行兩個數,分別代表nnn和mmm。

接下來nnn行,每行乙個整數,代表第iii個小槽在木板上的位置。(最左邊作為原點0)

輸出格式:

輸出所有磁鐵之間最大的最小距離ddd。

輸入樣例#1:

5 3128

49輸出樣例#1:2≤n≤100000

2≤m≤n

0≤x_i≤10^9

題目中,3塊磁鐵的最大距離是3,也就是說d的範圍取值是(1≤d≤31≤ d ≤ 31≤d≤3)

磁鐵可以放置在(1、4、8)的位置上。

這題的思路是假設乙個間隔x,然後通過二分來不斷地更新x來確定最終x的值

#include#includeusing namespace std;

const int inf=0x3f3f3f3f;

int n,m,a[100005];

bool judge(int x)

printf("%d",l);

return 0;

}

二分最大值最小問題

一場別開生面的牛吃草大會就要在farmer john的農場舉辦了!世界各地的奶牛將會到達當地的機場,前來參會並且吃草。具體地說,有n頭奶牛到達了機場 1 n 105 其中奶牛i在時間ti 0 ti 109 到達。farmer john安排了m 1 m 10 5 輛大巴來機場接這些奶牛。每輛大巴可以乘...

二分 最小化最大值

注意答案的二分性質,必須要滿足在滿足給定條件的所有情況的時候都滿足要求才能更新ans。include using namespace std typedef long long ll inline ll in while c 0 c 9 res res 10 c 48,c getchar retur...

試題 歷屆試題 區間移位(二分求最大值最小)

問題描述 數軸上有n個閉區間d1,dn。其中區間di用一對整數 ai,bi 來描述,滿足ai bi。已知這些區間的長度之和至少有10000。所以,通過適當的移動這些區間,你總可以使得他們的 並 覆蓋 0,10000 也就是說 0,10000 這個區間內的每乙個點都落於至少乙個區間內。你希望找乙個移動...