A60996. 给定 n 根木头,第 i 根长度为 a[i] 。要切成不少于 m 段等长木段,求最大可能长度,则横线上应填 写( )。1 def check(a, m, x)
单选题
知识点
题目描述
给定 n 根木头,第 i 根长度为 a[i] 。要切成不少于 m 段等长木段,求最大可能长度,则横线上应填 写( )。
1 def check(a, m, x): 2 cnt = 0 3 for length in a: 4 if x == 0: 5 return True 6 cnt += length 7 if cnt >= m: 8 return True 9 return cnt >= m 10 11 def main(): 12 import sys 13 input = sys.stdin.read().split() 14 idx = 0 15 n = int(input[idx]) 16 idx += 1 17 m = int(input[idx]) 18 idx += 1 19 20 a = [] 21 mx = 0 22 for _ in range(n): 23 num = int(input[idx]) 24 idx += 1 25 a.append(num) 26 mx = max(mx, num) 27 28 l = 1 29 r = mx 30 ans = 0 31 32 while l <= r: 33 mid = l + (r - l) // 2 34 if check(a, m, mid): 35 ans = mid 36 _______________ 37 else: 38 _______________ 39 40 print(ans) 41 42 if __name__ == "__main__": 43 main()
选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员