时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
题目描述
在一条笔直的公路上安装了N个路灯,从位置0开始安装,路灯之间间距固定为100米。
每个路灯都有自己的照明半径,请计算第一个路灯和最后一个路灯之间,无法照明的区间的长度和。
输入描述
第一行为一个数N,表示路灯个数,1<=N<=100000
第二行为N个空格分隔的数,表示路灯的照明半径,1<=照明半径<=100000*100
输出描述
第一个路灯和最后一个路灯之间,无法照明的区间的长度和
用例1
输入
2
50 50
输出
0
用例2
输入
4
50 10000 20 30
输出
0
说明
路灯1覆盖0-50,路灯2覆盖50-100,
路灯1和路灯2之间(0米-100米)无未覆盖的区间。
解题思路
1.先将路灯的照明范围转化为区间,存入二维数组
2.数组排序后,求并集,然后将区间之间的间隔相加
考点
区间
这篇博客探讨了一个关于路灯照明的算法问题,其中路灯的照明半径和位置是已知的。问题要求计算在所有路灯覆盖范围内,无法被照明的区间总长度。输入包含路灯的数量及其照明半径,通过将照明范围转换为区间并进行排序,然后计算区间并集的间隔,从而得出答案。博客提供了解题思路和具体的代码实现,主要涉及区间交并集的处理,适合C++、Python和Java开发者阅读。
订阅专栏 解锁全文
762

被折叠的 条评论
为什么被折叠?



