网线主管(信息学奥赛一本通-T1242)
【題目描述】
仙境的居民們決定舉辦一場程序設(shè)計(jì)區(qū)域賽。裁判委員會完全由自愿組成,他們承諾要組織一次史上最公正的比賽。他們決定將選手的電腦用星形拓?fù)浣Y(jié)構(gòu)連接在一起,即將它們?nèi)窟B到一個單一的中心服務(wù)器。為了組織這個完全公正的比賽,裁判委員會主席提出要將所有選手的電腦等距離地圍繞在服務(wù)器周圍放置。
為購買網(wǎng)線,裁判委員會聯(lián)系了當(dāng)?shù)氐囊粋€網(wǎng)絡(luò)解決方案提供商,要求能夠提供一定數(shù)量的等長網(wǎng)線。裁判委員會希望網(wǎng)線越長越好,這樣選手們之間的距離可以盡可能遠(yuǎn)一些。
該公司的網(wǎng)線主管承接了這個任務(wù)。他知道庫存中每條網(wǎng)線的長度(精確到厘米),并且只要告訴他所需的網(wǎng)線長度(精確到厘米),他都能夠完成對網(wǎng)線的切割工作。但是,這次,所需的網(wǎng)線長度并不知道,這讓網(wǎng)線主管不知所措。
你需要編寫一個程序,幫助網(wǎng)線主管確定一個最長的網(wǎng)線長度,并且按此長度對庫存中的網(wǎng)線進(jìn)行切割,能夠得到指定數(shù)量的網(wǎng)線。
【輸入】
第一行包含兩個整數(shù)N和K,以單個空格隔開。N(1 ≤ N ≤ 10000)是庫存中的網(wǎng)線數(shù),K(1 ≤ K ≤ 10000)是需要的網(wǎng)線數(shù)量。
接下來N行,每行一個數(shù),為庫存中每條網(wǎng)線的長度(單位:米)。所有網(wǎng)線的長度至少1m,至多100km。輸入中的所有長度都精確到厘米,即保留到小數(shù)點(diǎn)后兩位。
【輸出】
網(wǎng)線主管能夠從庫存的網(wǎng)線中切出指定數(shù)量的網(wǎng)線的最長長度(單位:米)。必須精確到厘米,即保留到小數(shù)點(diǎn)后兩位。
若無法得到長度至少為1cm的指定數(shù)量的網(wǎng)線,則必須輸出“0.00”(不包含引號)。
【輸入樣例】
4 11
8.02
7.43
4.57
5.39
【輸出樣例】
2.00
【源程序】
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<string> #define INF 999999999 #define N 100001 #define MOD 1000000007 #define E 1e-3 using namespace std; int n,k,a[N]; int judge(int x) {int i,ans=0;for(i=1;i<=n;i++)ans+=a[i]/x;return ans>=k; } int main() {double b;int i,j;int left=0,right=0,mid;cin>>n>>k;for(i=1;i<=n;i++){cin>>b;a[i]=(int)(b*100+0.5);if(right<a[i])right=a[i];}right+=1;while(left+1<right){mid=(left+right)/2;if(judge(mid))left=mid;elseright=mid;}printf("%.2lf",left/100.0);return 0; }?
總結(jié)
以上是生活随笔為你收集整理的网线主管(信息学奥赛一本通-T1242)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Almost Arithmetic Pr
- 下一篇: 不要62(HDU-2089)