當一題求符合要求最小值或最大值,並且答案的範圍可以確定時,可以使用二分答案法。
二分答案題的關鍵在於檢驗結果是否符合要求.
二分答案有多種寫法
寫法一 (同noip2017初賽試題的寫法):
結果是mid.
- 找最大值
l = min_ans, r = max_ans;
while(l < r)
- 找最小值
l = min_ans, r = max_ans;
while(l < r)
- 找最大值
l = min_ans, r = max_ans; //建議不要讓l=0.
while(l <= r)
結果是l-1.
- 找最小值
l = min_ans, r = max_ans;
while(l <= r)
如果答案求的是浮點型,可以乘上10的次方,變為整數再二分答案,最後輸出再除以這個數.
比如答案保留兩位小數,就乘上100.
二分答案法 板子!!
先上題 題目背景 一年一度的 跳石頭 比賽又要開始了 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終 點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達 終點。...
二分法專項 二分答案
題目背景 一年一度的 跳石頭 比賽又要開始了 題目描述 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 nnn 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高...
二分查詢與二分答案
主要用於在乙個單調的函式中查詢某值 連續函式的情況 若當前查詢的區間是 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...