poj2456 二分搜尋 《挑戰程式設計競賽》

2021-08-15 10:39:35 字數 593 閱讀 7814

2018-2-6

直接使用二分搜尋即可,如果可以滿足條件的話,就在mid與high之間,否則的話就在low與mid之間。

在判斷給定的d是否能夠滿足條件時,我用的是貪心的想法,就是讓牛盡可能的朝左邊的牛棚中去,這樣很容易就可以判斷出來。

#include

#include

#include

using

namespace

std;

const

int n = 100000;

int x[n+1];

int n,c,cnt;

bool res(int d)

}return cnt>=c;

}void div()

cout

sort(x+1,x+n+1);

div();

}return

0;}

其實我一直有乙個疑問,就是在二分搜尋中,high什麼時候等於mid,什麼時候等於mid-1,low什麼時候等於mid,什麼時候等於mid+1,返回的值什麼時候等於mid,什麼時候等於high,什麼時候等於low……

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(二分搜尋)

題目鏈結 題目大意,給牛的數量和牛棚的座標位置,求把牛全部放進牛棚後最小牛間距的最大值 思路 二分列舉相鄰兩牛的間距,判斷大於等於此間距下能否放進所有的牛 include include include include using namespace std const int n 1e6 10 i...