本來在刷圖論裡的題的,結果不小心遇到了這道luogu1462
想了好久也沒做出來,只有看題解了(怪我咯,略略略);
好吧,這題要用二分;
1.二分思想
其實和數學中的是一樣的,對於乙個單調函式,可以通過二分法來提高效率,從而更快的確定答案的範圍(或值);
(對於有單峰的函式,我們可以通過三分法來解決問題;)
2.二分答案
二分答案,就是對答案進行二分;像這樣:
while(l<=r)
l到r就是答案的區間範圍,而check函式就自己寫了;
如開頭那道題,check函式就是損失血的最小值小於他的血量;
如果還不理解可以查查二分查詢,
或者想想讓你猜數字(1到1000000),然後告訴你這個數與答案的大小關係,你要猜幾次?(可以每乙個都試一下,但如果二分是不是簡單多了?)
上一些 利提 :
noip2015 跳石頭
luogu1024
二分查詢與二分答案
主要用於在乙個單調的函式中查詢某值 連續函式的情況 若當前查詢的區間是 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 ...