1. 程式人生 > >POJ 3258 二分

POJ 3258 二分

 

要求:河中有0 - N+1共N+2個點,且這些點共線,依次從0點跳到N+1點,且1-N點可刪去M個點,點與點之間均有不為0的間隔。

問刪去M個點後兩點之間間隔的最大值是多少?

方法:二分查詢。

先放上去二分模板連結:https://www.cnblogs.com/Yan-C/p/3908263.html

1.遍歷N+1個間隔,並將間隔累加,累加一次記一次數,當累加到mid時,判定累加次數,若小於等於M,則將二分的左端點加1,

否則將右端點減1,當l>r時,跳出迴圈。

2.輸出l。

邏輯是如果達到這個距離了所移走的石頭數目比給定的數目多則縮小最小距離,如果移走的石頭數目比給定的數目少則增大距離。

不解處:1.累加次數加多了。

               2.輸出左端點不懂。