總時間限制: 1000ms 記憶體限制: 65536kb
描述 仙境的居民們決定舉辦一場程式設計區域賽。裁判委員會完全由自願組成,他們承諾要組織一次史上最公正的比賽。他們決定將選手的電腦用星形拓撲結構連線在一起,即將它們全部連到乙個單一的中心伺服器。為了組織這個完全公正的比賽,裁判委員會主席提出要將所有選手的電腦等距離地圍繞在伺服器周圍放置。
為購買網線,裁判委員會聯絡了當地的乙個網路解決方案提供商,要求能夠提供一定數量的等長網線。裁判委員會希望網線越長越好,這樣選手們之間的距離可以盡可能遠一些。
該公司的網線主管承接了這個任務。他知道庫存中每條網線的長度(精確到厘公尺),並且只要告訴他所需的網線長度(精確到厘公尺),他都能夠完成對網線的切割工作。但是,這次,所需的網線長度並不知道,這讓網線主管不知所措。
你需要編寫乙個程式,幫助網線主管確定乙個最長的網線長度,並且按此長度對庫存中的網線進行切割,能夠得到指定數量的網線。
輸入 第一行包含兩個整數n和k,以單個空格隔開。n(1 <= n <= 10000)是庫存中的網線數,k(1 <= k <= 10000)是需要的網線數量。
接下來n行,每行乙個數,為庫存中每條網線的長度(單位:公尺)。所有網線的長度至少1m,至多100km。輸入中的所有長度都精確到厘公尺,即保留到小數點後兩位。
輸出 網線主管能夠從庫存的網線中切出指定數量的網線的最長長度(單位:公尺)。必須精確到厘公尺,即保留到小數點後兩位。
若無法得到長度至少為1cm的指定數量的網線,則必須輸出「0.00」(不包含引號)。
樣例輸入
4 11
8.02
7.43
4.57
5.39
樣例輸出
2.00
我有話說:這道題基本思想是二分,不過要注意的是精度問題。因為精確到厘公尺所以只要把輸入乘以100儲存到陣列裡即可。
#include
#include
#include
#include
using
namespace
std;
const
int maxn=10000+10;
int n,m;
int a[maxn],maxa;
void solve()
printf("%.2lf\n",l/100.00);
}int main()
solve();
return
0;}
POJ網線主管
一般的二分查詢是在乙個排好序的陣列中,確定乙個比較規則來查詢。而這個題如果要把陣列求出來顯然會超時 10 12 我覺得這個題可以理解為 函式二分查詢 就是只給乙個單調的函式f,在其中找y f x 對應的x。在這個題中,x就是要求的網線長度,最小是1,最大是最長的那根網線的長度,也就是我們在這個範圍內...
POJ 1064 網線主管 二分搜尋
原題傳送門 有 n nn條繩子,它們的長度分別為 l il i li 如果從它們中切割出k kk條長度相同的繩子的話,這些繩子每條最長能有多長?答案保留到小數點後 2位 白書中所謂典型的二分搜尋題,左邊界從0開始,右邊界從所有繩子中最長的開始,每次統計 l r 2 l r 2 l r 2能切割出來多...
04 網線主管OJ
總時間限制 1000ms 記憶體限制 65536kb 描述 仙境的居民們決定舉辦一場程式設計區域賽。裁判委員會完全由自願組成,他們承諾要組織一次史上最公正的比賽。他們決定將選手的電腦用星形拓撲結構連線在一起,即將它們全部連到乙個單一的中心伺服器。為了組織這個完全公正的比賽,裁判委員會主席提出要將所有...