Convention 二分答案

2021-09-12 15:58:36 字數 799 閱讀 5897

用大巴車去接在機場的奶牛,一共有n頭奶牛和m輛車,每輛車可以坐c頭牛,每頭牛在不同的時間到達機場

求在m輛車可以運送完所有n頭奶牛的情況下,需要等待最長時候的牛最少需要等多久

二分答案,log2109約為30次,每次105頭牛,時間複雜度允許

下一頭牛的等待時間超過當前答案 或者 車已滿 則換下一輛車,最後車剩餘數量大於等於0,則時間可能可以繼續縮短,否則需要增加時間

#include

using namespace std;

int cow[

100100];

//cow[i]=i-th cow arrival time;

intmain()

else

break;}

}if(m>=0)

//車夠,縮短等待時間

ans=wait,r=wait-1;

else

//車不夠,增加等待時間

l=wait+1;

wait=

(l+r)

>>1;

}for

(m=m,c=

0,n=

1; m>=

0 and n<=n; c=0,

--m)

else

break;}

}if(m>=0)

printf

("%d\n"

,l);

else

printf

("%d\n"

,ans)

;return0;

}

二分查詢與二分答案

主要用於在乙個單調的函式中查詢某值 連續函式的情況 若當前查詢的區間是 l,r 查詢的值是 y 函式單增 設 mid l r 2 若 f mid y 則 l mid,否則 r mid 直至 r l eps 當前查詢的區間是 l,r 查詢的值是 y 函式單增 設 mid l r 2 若 f mid y...

二分查詢和二分答案

1.解釋 優點 查詢速度快。缺點 待查表為有序表。4.時間複雜度 o log n 5.示例 p2249查詢 include include using namespace std long long n,m,a 1000005 b 100005 l,r,mid,cnt,x intmain for i...

二分與二分答案學習

判斷left,mid,right的符號進行區間的精確。如下為遞迴二分求零點的操作 double find zero point double left,double right,double precesion double mid right left 2 if f mid 0 if f mid ...