描述
窗外肉價飛漲,屋裡灶台微響。便當店老闆在沉思中苦惱:
現在店裡的存貨還有n條特製香腸,長度分別為li 。如果能從它們中切割出k條長度相同的香腸的話,就能應付突如其來的奇怪的訂單
你能幫這位老闆計算一下這k條香腸每條最長能有多長嗎?
(答案保留小數點後兩位,規定1單位長度的香腸最多可以切割成100份)
輸入第一行輸入2個正整數n,k
第2−(n+1)行每行輸入乙個實數l(1.0≤li≤1.0 * 10^5)
輸出輸出切出來的香腸的最大長度,結果保留兩位小數
樣例輸入複製
4 11
8.02
7.43
4.57
5.39
輸出複製
2.00
提示資料規模
對於10%10%的資料,0≤n≤10,1≤k≤100≤n≤10,1≤k≤10
對於20%20%的資料,0≤n≤100,1≤k≤1000≤n≤100,1≤k≤100
對於40%40%的資料,0≤n≤1000,1≤k≤10000≤n≤1000,1≤k≤1000
對於100%100%的資料,0≤n≤10000,1≤k≤100000≤n≤10000,1≤k≤10000
思路:典型的二分(洛谷有一道切繩子,和本題一模一樣),本題要求保留兩位小數,如果直接用double計算會造成誤差,所以我們可以先將浮點數乘以100倍,以整數的形式儲存、計算。最後輸出結果時只需除以100,以浮點數的形式輸出即可。
**:
#include
double p;
long
long n,k,t,t1,a[
100005
],max,min,mid;
intok
(long
long x)
if(treturn0;
return1;
}int
main()
min=1;
max=
10000000
;while
(minelse
}printf
("%.2lf"
,1.0
*(min-1)
/100);
return0;
}
浮點數二分
2 浮點數二分 模板 浮點數二分演算法模板 模板題 acwing 790.數的三次方根 bool check double x double bsearch3 double l,double r return l acwing790.數的三次方根 給定乙個浮點數n,求它的三次方根。輸入格式 共一行,...
整數二分和浮點數二分
注意點 1.有單調性一定可以二分,二分不一定需要單調性 2.二分本質 找到一種性質,將乙個區間一分為二,一部分滿足性質,另一部分不滿足性質,通過二分找到兩部分的邊界 3.二分一定有解,即能夠找到性質的邊界。無解通常跟題目有關。4.浮點數二分 精度足夠小時結束迴圈 或者 直接迴圈100次 while ...
二分 整數二分和浮點數二分
一定是單調的才可以二分。找中間點 判斷是否滿足check函式 此函式需要自己根據題意調整,假設紅色區域為滿足check函式,說明mid在紅色區域內,此時要在mid到r之間找,l mid,否則r mid 1。由於此時l mid 所以中間點應為 l r 1 2 中間點mid l r 2 mid l r ...