切香腸 浮點數 二分)

2021-10-03 15:07:28 字數 1154 閱讀 7062

描述

窗外肉價飛漲,屋裡灶台微響。便當店老闆在沉思中苦惱:

現在店裡的存貨還有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 ...