洛谷 P1842 進擊的奶牛 二分法

2021-10-21 08:29:56 字數 1089 閱讀 8205

題目描述:

farmer john建造了乙個有n(2<=n<=100,000)個隔間的牛棚,這些隔間分布在一條直線上,座標是x1,…,xn (0<=xi<=1,000,000,000)。

他的c(2<=c<=n)頭牛不滿於隔間的位置分布,它們為牛棚裡其他的牛的存在而憤怒。為了防止牛之間的互相打鬥,farmer john想把這些牛安置在指定的隔間,所有牛中相鄰兩頭的最近距離越大越好。那麼,這個最大的最近距離是多少呢?

輸入:

第1行:兩個用空格隔開的數字n和c。

第2~n+1行:每行乙個整數,表示每個隔間的座標。

輸出:

輸出只有一行,即相鄰兩頭牛最大的最近距離。

思路:

看到最大的最近距離,顯然是要使用二分法,這道題和跳石頭那道題的方法可以說是一模一樣,跳石頭–二分法。

**:

#include

#include

using

namespace std;

int n,c,l,r,mid,ans;

int a[

100005];

bool

judge

(int x)

//x為當前二分的解,判斷是否合法

if(sum>=c)

//已經放的奶牛數量大於等於有的奶牛,就是可行解

return

true;}

return

false

;//遍歷結束,奶牛數量還不夠,就是非法解

}int

main()

else

r=mid-1;

//mid不是可行解,那麼就去左邊尋找

} cout

}

洛谷 1824 進擊的奶牛 二分

題目鏈結 寫這道題是為了記錄一下二分的模板,這種求最大中的最小比較適合用二分。面對這種最大中的最小,有時候會犯暈,到底是最大還是最小。這裡的關係是 我們二分中的mid是假設的最大值,如果這個mid成立,那說明他一定是比真正的最小的最大值大的,所以我們往小了找,簡而言之,最大是假設的mid的屬性,最小...

洛谷 二分搜尋 進擊的奶牛

farmer john建造了乙個有n 2 n 100,000 個隔間的牛棚,這些隔間分布在一條直線上,座標是x1,xn 0 xi 1,000,000,000 他的c 2 c n 頭牛不滿於隔間的位置分布,它們為牛棚裡其他的牛的存在而憤怒。為了防止牛之間的互相打鬥,farmer john想把這些牛安置...

UPC 栓奶牛 二分法

有n頭奶牛 2 n 100 有k個木樁 n k 100 每個木樁有乙個位置,乙個木樁上只能拴一頭奶牛。由於奶牛好鬥,所以在拴奶牛的時候要求距離最近的奶牛的距離盡可能大。輸入1行 n,k,p1三個整數 0 p1 100 其中p1為第1個木樁的位置,其他木樁pi i 2 的位置由下面公式給出 pi pi...