def
max_length
(m,n,length_data)
:
max_length =
float
(max
(length_data)
) min_length =
0.0while
(abs
(max_length - min_length)
>=1e-
3): mid = min_length +
float
(max_length - min_length)
/2.0
num =
0for i in
range
(m):
num +=
int(length_data[i]
/mid)
# 可重複使用
if num >= n:
# 滿足條件 嘗試增加能切出來的最大長度看是否依舊能滿足條件
min_length = mid
res = mid
else
:# 不滿足條件 嘗試減小能切出來的最大長度
max_length = mid
return res
# 儲存每根繩子的長度
length_data =[3
,5,4
]print
(max_length(3,
3,length_data)
)
二分 貪心 用 N 根繩子裁剪出 M 根等長繩子
有 n 根繩子,第 i 根繩子的長度為 l i 現在需要 m 根等長的繩子。你可以對這 n 根繩子進行任意裁剪 不能拼接 請你計算出這 m 根繩子最長的長度。輸入描述 第一行包括兩個整數 n,m,含義如題所述 1 n,m 100000 第二行包含n個整數,分別對應n根繩子的長度 0 l i 109 ...
mysql 長度問題( M )
mysql在建表的時候int型別後的長度代表什麼?是該列允許儲存值的最大寬度嗎?為什麼我設定成int 1 也一樣能存10,100,1000呢.當時我雖然知道int 1 這個長度1並不代表允許儲存的寬度,但卻沒有乙個合理的解釋.或者說對這個長度也沒有真正的研究過到底代表什麼,平時都用int 11 也不...
位元組跳動第四題 最長的字繩子長度
大概題目如下 有n根繩子,第i根長為li,現需要m根等長繩子。對n根繩子進行任意剪裁 不能拼接 計算出這m根繩子最長的長度 既然是要得出裁剪後的繩子長度,那麼 繩子長度是一定小於或等於 最長的繩子 注意不是最短的繩子,如果最短的繩子和最長的繩子差距太大,捨去最短繩子一樣能夠 滿足 m根的要求 而且都...