POJ 2456 二分答案

2021-10-24 12:54:15 字數 611 閱讀 4489

在n個點中選c個點使得相鄰的點之間的最小距離最大,求最大值。

求二分區間中滿足條件的最大值。

二分區間為(0,陣列中最大差距),如果mid滿足題意那麼比mid小的答案也滿足題意。

#include

#include

using

namespace std;

const

int maxn =

1e5+10;

int a[maxn]

;int n, c;

bool

check

(int mid)

}return num == c ?

true

:false;}

intmain()

sort

(a, a + n)

;int l =0;

int r = maxnum - minnum;

int ans =0;

while

(l <= r)

else

}printf

("%d\n"

, ans);}

return0;

}```

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個牛棚裡面,有很多種丟法,但每次,兩兩有牛的牛棚...