洛谷1577 1297切繩子(二分答案)

2022-04-06 04:32:32 字數 1791 閱讀 9712

wonderland居民決定舉行一屆地區性程式設計大賽。仲裁委員會志願負責這次賽事並且保證會組織一次有史以來最公正的比賽。為此,所有參賽者的電腦和網路中心會以星狀網路連線,也就是說,對每個參賽者,組委會會用一根長度一定的網線將他的計算機與中心連線,使得他們到網路中心的距離相等。

為了買網線,組委會與當地的網路公司聯絡,要向他們購買一定數目的等長網線,這些網線要盡可能的長,使得組織者可以讓選手們彼此遠離。

於是公司指派管理網線事務的負責人解決此事。負責人清楚地知道倉庫裡每根網線的長度(精確到厘公尺:cm),他也可以將他們以厘公尺的精度切割——前提是他得知道切成多長。但是現在,這個長度他算不出來,於是他徹底迷茫了。

你要做的,就是幫助困惑的負責人。編乙個程式求出為了得到一定數目的等長網線,每根網線最大的可能長度。

輸入格式:

輸入檔案的第一行由兩個整數n和k組成,由乙個空格間隔。n(1≤n≤10000)是倉庫裡光纜的數目,k(1≤k≤10000)是需要的網線數目。

接下來的n行每行只有乙個實數,告訴你每根纜線的長度(單位:m)。這些網線至少長1m,最多不超過100km。

所有的長度精確到cm,且小數點後有且僅有兩位。

輸出格式:

把你求得的最大網線長度寫進輸出檔案(單位:m)。長度要精確到cm,並且輸出時小數點後要恰有兩位。

如果無論如何也不可能切割出需要數目的網線(每根至少1cm長),那麼就輸出「0.00」(不包括引號)。

輸入樣例#1:

4 11

8.02

7.43

4.57

5.39

輸出樣例#1:

2.00

精度真真真噁心!!

92分**:

#include#include

#include

using

namespace

std;

intn,m,cnt;

double ans,tot,maxx,a[10010],b[10010

];bool judge(double

mid)

}if(cntreturn

false

;

else

return

true;}

intmain()

double l=0.00000001,r=maxx;

while(l<=r)

if(ans==0

)

else

printf(

"%.2lf\n

",floor(ans*100)/100

);

return0;

}

滿分,轉int二分...摘的題解

#include#include

#include

using

namespace

std;

long

long k,n,i,t,a[20010

],l,r,mid;

double b,out

;bool pan(long

long

x)int

main()

out=mid*1.00/100

; printf(

"%.2lf

",out

);

return0;

}

洛谷 P1577 切繩子 二分

題目描述 有n條繩子,它們的長度分別為li。如果從它們中切割出k條長度相同的 繩子,這k條繩子每條最長能有多長?答案保留到小數點後2位。輸入輸出格式 輸入格式 第一行兩個整數n和k,接下來n行,描述了每條繩子的長度li。輸出格式 切割後每條繩子的最大長度。輸入輸出樣例 輸入樣例 1 4 11 8.0...

洛谷 P1577 切繩子

原題 有n條繩子,它們的長度分別為li。如果從它們中切割出k條長度相同的繩子,這k條繩子每條最長能有多長?答案保留到小數點後2位。輸入輸出格式 輸入格式 第一行兩個整數n和k,接下來n行,描述了每條繩子的長度li。輸出格式 切割後每條繩子的最大長度。輸入輸出樣例 輸入樣例 1 複製 4 11 8.0...

洛谷 P1577 切繩子

網線主管。我一直奇怪為什麼洛谷沒有網線主管,原來是有人抄得一模一樣。在洛谷上ac可以去交一下 不用改 首先看到這資料範圍,然後又是求最優解,首先就要考慮下貪心行不行 我嫌浮點數乘除麻煩,就讀入時乘上100,中間二分時r的範圍也要乘上100,最後輸出時除以100 因為c 自帶整除 偏向0取整,你可以試...