二分最大值最小問題

2021-09-24 10:38:07 字數 1180 閱讀 1496

一場別開生面的牛吃草大會就要在farmer john的農場舉辦了!

世界各地的奶牛將會到達當地的機場,前來參會並且吃草。具體地說,有n頭奶牛到達了機場(1≤n≤105),其中奶牛i在時間ti(0≤ti≤109)到達。farmer john安排了m(1≤m≤10^5)輛大巴來機場接這些奶牛。每輛大巴可以乘坐c頭奶牛(1≤c≤n)。farmer john正在機場等待奶牛們到來,並且準備安排到達的奶牛們乘坐大巴。當最後一頭乘坐某輛大巴的奶牛到達的時候,這輛大巴就可以發車了。farmer john想要做乙個優秀的主辦者,所以並不想讓奶牛們在機場等待過長的時間。如果farmer john合理地協調這些大巴,等待時間最長的奶牛等待的時間的最小值是多少?一頭奶牛的等待時間等於她的到達時間與她乘坐的大巴的發車時間之差。

輸入保證mc≥n。

輸入的第一行包含三個空格分隔的整數n,m和c。第二行包含n個空格分隔的整數,表示每頭奶牛到達的時間。

輸出一行,包含所有到達的奶牛中的最大等待時間的最小值。

輸入

6 3 2

1 1 10 14 4 3

輸出

4
如果兩頭時間1到達的奶牛乘坐一輛巴士,時間2和時間4到達的奶牛乘坐乘坐第二輛,時間10和時間14到達的奶牛乘坐第三輛,那麼等待時間最長的奶牛等待了4個單位時間(時間10到達的奶牛從時間10等到了時間14)。

ans屬於[0,maxn-minn]

#include.h>

using namespace std;

inline char gc()

template>

inline void

read(t

&x)typedef long long ll;

const int m

=1e5+10

;int n,m,c,t[m]

;inline bool check

(int val)

inline int binary()

//如果mid符合條件,說明答案在[l,mid-1]、mid之間,故先儲存mid,再找更小的答案。

else l=mid+1;

//r如果mid不符合,則答案在(mid,r]之間,即[mid+1,r]之間,

}return res;

}int main()

二分 最小化最大值

注意答案的二分性質,必須要滿足在滿足給定條件的所有情況的時候都滿足要求才能更新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...

二分查詢求最大值最小化(最小值最大化)問題

題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 nn 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高比賽難度,組委會計畫移走一些岩石,使得選手們在比...

二分求最小間距的最大值

mad jim jaspers為了證明釹磁鐵的強大,拿來了乙個有nnn個小槽的長木條,mmm個釹磁鐵,第iii個小槽在xix ixi 的位置上,為了不讓磁鐵互相吸引,每塊磁鐵離其他磁鐵的距離應該盡可能的大。請你幫mjj寫乙個程式,求出所有磁鐵之間最小距離的最大值。只要磁鐵距離大於等於1就不會互相吸引...