題目**:
題目描述:
我們把公路上相鄰路標的最大距離定義為該公路的「空曠指數」。
給出增設的路標數,求最小的空曠指數。
輸入格式:
第1行包括三個數l、n、k,分別表示公路的長度,原有路標的數量,以及最多可增設的路標數量。
第2行包括遞增排列的n個整數,分別表示原有的n個路標的位置。路標的位置用距起點的距離表示,且一定位於區間[0,l]內。
輸出格式:
輸出1行,包含乙個整數,表示增設路標後能達到的最小「空曠指數」值。
思路分析:
很明顯,本題可使用二分法查詢。查詢的區間應為[1,max]。
max:設n個路標把公路分成n+1段,max為最大子段的長度。
即空曠指數最小為零,最大為max。當空曠指數為max時不需要新添路標。
首先需要乙個新的check函式來檢查當前空曠指數可不可行。
其次寫二分查詢的函式,就非常簡單了。
詳見**如下:
#include
using namespace std;
#define m 15000000
long long int l, r, mid;
int l, n, k;
int a[m];
bool check(long long int ans)
last = a[i];
}return cnt <= k;
}int main()
l = 1;
while(l < r)
printf("%lld", l);
return 0;
}總結與體會:
二分查詢可以通過多種途徑實現,不能夠僅僅侷限於運用遞迴。在遇到問題的時候要靜下心思考,或者適當聽取別人的建議也是一種不錯的方法。
洛谷 3853 路標設定
b市和t市之間有一條長長的高速公路,這條公路的某些地方設有路標,但是大家都感覺路標設得太少了,相鄰兩個路標之間往往隔著相當長的一段距離。為了便於研究這個問題,我們把公路上相鄰路標的最大距離定義為該公路的 空曠指數 現在 決定在公路上增設一些路標,使得公路的 空曠指數 最小。他們請求你設計乙個程式計算...
P3853 TJOI2007 路標設定
b市和t市之間有一條長長的高速公路,這條公路的某些地方設有路標,但是大家都感覺路標設得太少了,相鄰兩個路標之間往往隔著相當長的一段距離。為了便於研究這個問題,我們把公路上相鄰路標的最大距離定義為該公路的 空曠指數 現在 決定在公路上增設一些路標,使得公路的 空曠指數 最小。他們請求你設計乙個程式計算...
題解 TJOI2007 路標設定
目錄分析 注意事項 code 執行限制 時間 1.00 textrm 空間 128 textrm b 市和 t 市之間有一條長長的高速公路,這條公路的某些地方設有路標,但是大家都感覺路標設得太少了,相鄰兩個路標之間往往隔著相當長的一段距離。為了便於研究這個問題,我們把公路上相鄰路標的最大距離定義為該...