OD 算法题 B卷 【最佳植树距离】
文章目录
- 最佳植树距离
最佳植树距离
- 在直线的公路上种树,给定坑位数量和位置,及需要种多少棵树苗;
- 树苗之间的最小距离是多少时,可以保证种的最均匀(树苗之间的最小距离最大);
输入描述:
第一行坑位数量;
第二行坑位的位置;
第三行需要种植树苗的数量;
输出描述:
树苗之间的最小距离
示例1:
输入:
7
1 3 6 7 8 11 13
3
输出:
6
n = int(input())
positions = [int(x) for x in input().split(" ")]
m = int(input())def solve(position, m):position.sort()def count(num):stack=[position[0]]cnt=1while True:index=bisect.bisect(position,stack.pop()+num)if index==len(position):breakstack.append(position[index])cnt+=1return cntl,r=1,position[-1]//(m-1)while l<r:mid=l+(r-l)//2if count(mid)>=m:l=mid+1else:r=midreturn lprint(solve(positions,m))