NOIP學習之二分查詢 129 河中跳房子

2021-10-03 18:43:05 字數 1108 閱讀 8711

測試鏈結

總時間限制: 1000ms 記憶體限制: 65536kb

描述

每年奶牛們都要舉辦各種特殊版本的跳房子比賽,包括在河裡從乙個岩石跳到另乙個岩石。這項激動人心的活動在一條長長的筆直河道中進行,在起點和離起點l遠 (1 ≤ l≤ 1,000,000,000) 的終點處均有乙個岩石。在起點和終點之間,有n (0 ≤ n ≤ 50,000) 個岩石,每個岩石與起點的距離分別為di (0 < di < l)。

在比賽過程中,奶牛輪流從起點出發,嘗試到達終點,每一步只能從乙個岩石跳到另乙個岩石。當然,實力不濟的奶牛是沒有辦法完成目標的。

農夫約翰為他的奶牛們感到自豪並且年年都**了這項比賽。但隨著時間的推移,看著其他農夫的膽小奶牛們在相距很近的岩石之間緩慢前行,他感到非常厭煩。他計畫移走一些岩石,使得從起點到終點的過程中,最短的跳躍距離最長。他可以移走除起點和終點外的至多m (0 ≤ m ≤ n) 個岩石。

請幫助約翰確定移走這些岩石後,最長可能的最短跳躍距離是多少?

輸入

第一行包含三個整數l, n, m,相鄰兩個整數之間用單個空格隔開。

接下來n行,每行乙個整數,表示每個岩石與起點的距離。岩石按與起點距離從近到遠給出,且不會有兩個岩石出現在同乙個位置。

輸出

乙個整數,最長可能的最短跳躍距離。

樣例輸入

25 5 2211

1417

21樣例輸出

4

#include

#include

#include

using

namespace std;

int l, n, m, a[

50003

], ans;

/* 定義變數 */

intcheck

(int);

intmain()

else

right=mid-1;

} cout

}int

check

(int mid)

NOIP學習之二分查詢 120 矩形分割

測試鏈結 總時間限制 1000ms 記憶體限制 65536kb 描述 平面上有乙個大矩形,其左下角座標 0,0 右上角座標 r,r 大矩形內部包含一些小矩形,小矩形都平行於座標軸且互不重疊。所有矩形的頂點都是整點。要求畫一根平行於y軸的直線x k k是整數 使得這些小矩形落在直線左邊的面積必須大於等...

NOIP學習之二分查詢 121 查詢最接近的元素

測試鏈結 總時間限制 1000ms 記憶體限制 65536kb 描述 在乙個非降序列中,查詢與給定值最接近的元素。輸入 第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢...

查詢之二分查詢

二分查詢前提查詢的序列需要有序 十分好理解 取中間值與目標值對比查詢 注意下數值邊界 public static void main string args int arr2 int arr3 int index binarysearch arr,34 int index2 binarysearch...