#1524. 网络信号覆盖
网络信号覆盖
故事背景
在一个偏远的山区,通信公司需要为村庄安装信号塔,以确保整个村庄都能被网络信号覆盖。由于预算有限,公司希望使用最少数量的信号塔来完成覆盖任务。作为网络工程师,你需要设计一个算法来确定最少需要多少个信号塔。
题目描述
给定一个村庄的长度 L ,以及一些信号塔的覆盖区间,每个区间由两个整数 a 和 b 表示,其中 a 是覆盖的起点, b 是覆盖的终点。请你计算最少需要多少个信号塔,才能使整个村庄的区间 [0, L] 被完全覆盖。
如果无法覆盖整个村庄,请返回 -1。
输入格式
第一行输入两个整数 n 和 L ( ),分别表示信号塔的数量和村庄的长度。
接下来 n 行,每行输入两个整数 a 和 b ( ),表示一个信号塔的覆盖区间 [a, b]。
输出格式
输出一个整数,表示最少需要的信号塔数量。如果无法覆盖整个村庄,输出 -1。
样例输入 1
3 10
0 7
2 6
7 10
样例输出 1
2
样例输入 2
3 10
0 4
3 7
7 10
样例输出 2
3
样例输入 3
2 10
0 5
6 10
样例输出 3
-1
提示
- 这是一个经典的区间覆盖问题
- 考虑如何选择信号塔的顺序,使得覆盖范围尽可能大
- 注意信号塔的覆盖区间可能有重叠
- 注意处理无法覆盖整个村庄的情况