本题导航点一下展开
日程合并
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
小 有一张日程表,上面记录了接下来 个闭区间的安排。第 个区间从时刻 开始,到时刻 结束,记作 。时刻是整数,区间包含两个端点,也就是说, 属于 当且仅当 。
小 觉得这张表太乱了,她打算用一种叫"归并"的操作来整理它。一次归并操作包含以下步骤:
- 从表中挑选两个相交的区间。两个闭区间相交,当且仅当它们至少有一个公共时刻,即 ;
- 把它们从表中删去;
- 把这两个区间所有覆盖过的时刻合并成一个新的闭区间,放回表中。
例如,若表中有 和 ,它们相交于 ,归并后得到 ;若表中有 和 ,它们相交于时刻 ,归并后得到 ;若表中有 和 ,它们不相交,则不能对它们执行归并。
归并可以进行任意多次,每次都可以自由选择表中任意一对相交的区间。小 的目标是:经过若干次归并之后,表中剩下的任意两个区间都不相交。
请你帮她求出,最少需要执行多少次归并操作。可以证明,只要不断归并,一定能在有限次操作后达到目标。
两个区间只要有一个公共的整数时刻就算相交。如果某两个区间已经满足不相交,小 也可以选择不对它们做任何操作。
小 的日程表上可能同时存在很多个区间,它们的先后顺序与输入顺序无关,同一个区间也允许出现多次。
日程表是纸质的,归并时她只需要把两个区间的起止时刻抄写在一张新的纸上。
输入格式
从标准输入读入数据。
输入的第一行包含一个正整数 ,表示区间的数量。
接下来 行,第 行包含两个整数 ,表示第 个区间。
输出格式
输出到标准输出中。
输出一行一个整数,表示达到目标所需的最少归并次数。可以证明答案一定不超过 。
请只输出答案本身,不要输出任何多余的内容。
样例 1 输入
8
1 3
2 4
5 6
6 8
7 9
10 12
11 13
20 21
样例 1 输出
4
样例 1 解释
这些区间通过公共点分成四个互不相通的"组":
- ,需要 次归并;
- ,需要 次归并;
- ,需要 次归并;
- ,已经是单个区间,不需要操作。
合计 次。
样例 2 输入
6
1 2
2 3
3 4
4 5
5 6
7 8
样例 2 输出
4
样例 2 解释
前五个区间依次通过时刻 首尾相接,构成一个大小为 的组,需要 次归并; 与它们都不相交,保持不动。
样例 3
见选手目录下的 merge/merge3.in 与 merge/merge3.ans。
该样例满足测试点 的约束条件。
样例 4
见选手目录下的 merge/merge4.in 与 merge/merge4.ans。
该样例满足测试点 的约束条件。
样例 5
见选手目录下的 merge/merge5.in 与 merge/merge5.ans。
该样例满足测试点 的约束条件。
数据范围
对于所有测试数据,保证:
- ;
- 对于所有 ,均有 。
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 无 | ||
| A | ||
| B | ||
| 无 | ||
| C | ||
| 无 |
特殊性质 A:对于所有 ,区间 与 均不相交。
特殊性质 B:对于所有 ,区间 与 均相交。
特殊性质 C:,且对于所有 , 与 均在 中独立均匀随机生成。
输入保证 ,且所有参数均为整数。