#loj5758. 「ROI 2026 Day2」夜,街,灯,药店
「ROI 2026 Day2」夜,街,灯,药店
#5758. 「ROI 2026 Day2」夜,街,灯,药店
标签: 传统 | 时间限制: 2000 ms | 内存限制: 1024 MiB |
题目描述
译自 ROI 2026 Day2 T2. Ночь, улица, фонарь, аптека
在一条长街上排列着一些灯柱,共有 盏灯安装在这些灯柱上。我们沿着街道建立坐标系。第 盏灯所在的灯柱位于坐标 处。在本题的前六个子任务(分值为 分)中,任何两盏灯都不会安装在同一个灯柱上,即所有的 都是互不相同的。在最后两个子任务中,每个灯柱上最多可以安装两盏灯。
为了照明街道,可以开启其中的一部分灯。开启的第 盏灯具有亮度 。它从所属的灯柱开始,可以照亮街道上一段长度为 米的连续区域。每盏开启的灯既可以向左转向,也可以向右转向。如果将第 盏灯向左转向,它将照亮街道区间 ;如果向右转向,则照亮区间 。
我们选择一个非空的灯泡子集用于街道照明。如果能为选中的每盏灯确定向左或向右的朝向,并满足以下两个条件,则称该灯泡集合是经济型的:
- 所有照亮区域合并后形成街道上的一段连续区间;
- 没有任何长度大于零的路段被两盏或更多的灯同时照亮。
下图展示了题目中第二个样例中包含两盏灯的经济型子集,以及照亮连续路段的方式。每个灯泡上方标有其亮度。

请计算经济型灯泡子集的数量。输出结果对 取模后的余数。
输入格式
第一行包含一个整数 ,表示灯的数量。
接下来的 行,每行包含两个整数 和 $(1 \leq x_i \le 5\cdot 10^5, 1 \le s_i \leq 5 \cdot 10^5, x_1 \le x_2 \le \ldots \le x_n)$,分别表示第 盏灯所在灯柱的坐标及其亮度。
保证每个灯柱上最多放置两盏灯,即对于任何坐标 ,最多只有两个 满足 。
输出格式
输出一个整数,即选择经济型灯泡子集的方案数对 取模后的结果。
样例 1
输入
2
2 3
7 2
输出
3
在第一个样例中,所有三个非空灯泡子集都是正确的。
样例 2
输入
3
1 1
3 1
4 2
输出
6
在第二个样例中,除了集合 以外,所有的灯泡子集都是正确的。
样例 3
输入
5
3 2
4 2
5 2
6 2
7 2
输出
10
样例 4
输入
4
3 2
7 4
7 4
8 2
输出
8
样例 5
输入
5
1 2
1 3
2 1
2 2
4 1
输出
19
数据范围与提示
引入变量 ,表示具有相同坐标 的灯泡的最大数量。
在 的情况下,。
在 的情况下,,且如果 ,则满足 且 (如果对应的灯存在)。
详细子任务附加限制及分值如下表所示。其中子任务 是样例。
| 子任务 | 分值 | 附加限制 | 依赖子任务 | ||
|---|---|---|---|---|---|
| 无 | — | ||||
| — | 对于任意两盏不同的灯 ,均满足 且 | ||||
| 对于任意两盏不同的灯 ,均满足 | |||||
| 对于任意两盏不同的灯 ,均满足 | |||||
| — | 无 | ||||
| 如果 ,则满足 | |||||
| 无 |