M根繩子最長長度問題

2021-10-10 07:31:30 字數 777 閱讀 7611

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根的要求 而且都...