#P3012. 无重叠区间

无重叠区间

无重叠区间

题目描述

给定 n 个区间,第 i 个区间为 [l_i, r_i](保证 l_i < r_i)。

定义两个区间 [l1, r1] 与 [l2, r2] 互不重叠,当且仅当满足 r1 ≤ l2 或 r2 ≤ l1(端点恰好相接不算重叠)。

你可以删除其中若干个区间,使得剩下的区间两两互不重叠。

请你求出最少需要删除多少个区间,才能达到上述要求。

输入格式

第一行一个正整数 n,表示区间的个数。

接下来 n 行,每行两个整数 l_i 和 r_i,描述第 i 个区间。

输出格式

输出一行一个整数,表示最少需要删除的区间数量。

样例

4
1 2
2 3
3 4
1 3
1
3
1 2
2 3
3 4
0

样例解释

  • 样例 1:删除区间 [1,3] 后,剩下的 [1,2]、[2,3]、[3,4] 两两互不重叠(端点相接不算重叠),因此答案为 1。
  • 样例 2:三个区间本来就互不重叠,无需删除,答案为 0。

数据范围

  • 1 ≤ n ≤ 10^5
  • -10^9 ≤ l_i < r_i ≤ 10^9

提示

经典贪心:将所有区间按右端点从小到大排序,然后依次选择"与已选区间不重叠"的区间,记录最多能保留的数量 k,答案即为 n - k。