有n根繩子,第i根繩子長度為li,現在需要m根等長的繩子,你可以對n根繩子進行任意裁剪(不能拼接),請你幫忙計算出這m根繩子最長的長度是多少。
輸入格式
第一行包含2個正整數n、m,表示原始繩子的數量和需求繩子的數量。
第二行包含n個整數,其中第 i 個整數lili表示第 i 根繩子的長度。
輸出格式
輸出乙個數字,表示裁剪後最長的長度,保留兩位小數。
資料範圍
1≤n,m≤100000
010的9次方
輸入樣例:34
354輸出樣例:
2.50
樣例解釋
第一根和第三根分別裁剪出一根2.50長度的繩子,第二根剪成2根2.50長度的
繩子,剛好4根。
思路:首先直接做不好做,那麼想想暴力,確定繩子長度那麼總共切幾塊就知道了!
將繩子長度從大到小列舉,第乙個滿足能切m條的就是滿足條件的最大長度即可
然後優化,就是發現他有單調性,可以用二分,比如 如果乙個長度
切出來大於等於m條,那麼比這個長度小的都滿足,在這個長度到右邊界找答案
#include
using
namespace std;
const
int n=
100010
;int a[n]
;int n,m;
intget
(double x)
return sum;
}int
main()
}double l=
0,r=maxn;
while
(r-l>
1e-6
)printf
("%.2f"
,l);
return0;
}
今日頭條面試題 基礎練習
都是基礎題目,也起來也挺繞的 作為乙個手串藝人,有金主向你訂購了一條包含n個雜色串珠的手串 每個串珠要麼無色,要麼塗了若干種顏色。為了使手串的色彩看起來不那麼單調,金主要求,手串上的任意一種顏色 不包含無色 在任意連續的m個串珠裡至多出現一次 注意這裡手串是乙個環形 手串上的顏色一共有c種。現在按順...
c 病句 今日頭條面試題
試題描述 為了提高文章質量,每一篇文章 假設全部都是英文 都會有m名編輯審核,每個編輯獨立工作,會把覺得有問題的句子通過下標記錄下來,比如 1,10 1表示病句的第乙個字元,10表示病句的最後乙個字元。也就是從1到10個字元組成的句子,是有問題的。現在需要把多名編輯有問題的句子合併起來,送給總編輯進...
今日頭條async await面試題執行順序
async function async1 async function async2 console.log script start settimeout function 0 async1 new promise function resolve then function console.l...