進擊的奶牛

2021-08-29 20:23:28 字數 1066 閱讀 2302

題面(from luogu)

進擊的奶牛

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行:每行乙個整數,表示每個隔間的座標。

輸出格式:

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

輸入樣例#1:

5 3128

49輸出樣例#1:

3題目分析

這是一到可以很容易看出來的二分題(巨大的查詢範圍可以看出)。

在正常情況下,二分模板都是可以套進去的,但是難點是在對解是否合法的判斷上。

在這一道題目上面,我們可以寫乙個子程式來判斷一下,具體的也就是用當前的解,不停的向前面放,如果當前的放不了了,就說明有乙個屋子廢了,當然,我們算出最多可以廢幾個屋子,對比一下,即可

到這裡,這一道題就寫完了,

其他的也就是套模板了,這一題是比較適合用while版的二分來寫的

**

#include using namespace std;

int a[1000009],n,k;

bool judge(int x) //判斷函式

return true; //反之就是合法的

}int main()

if (judge(right)) cout

cout

}

** 菜雞c_uizrp_dzjopkl原創**

P1824 進擊的奶牛

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

進擊的奶牛(二分查詢)

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

洛谷P1824進擊的奶牛

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