区间选点
-
题意:
数轴上有 n 个闭区间 [a_i, b_i]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个 -
输入输出:
Input
第一行1个整数N(N<=100),第2~N+1行,每行两个整数a,b(a,b<=100)
Output
一个整数,代表选点的数目
-
解题思路:由于要选尽量少的点满足所有区间,所以重点是要判断有没有重叠部分。自定义结构体node记录区间的两个端点,用cmp函数将所有区间的按照小的端点升序排列,从第一个区间开始依次向后比较,如果前一个区间的y小于后一个区间的x,即没有重叠部分时,计数器加一。如果有重叠部分,则将后一个区间的y更新为当前两个区间中较大的y,继续向后比较。最后输出计数器的值,就是最小的点数。
-
代码实现: