logo AlgoBeat OnlineJudge
登录 注册

#217029. [ROI 2026 Day2] 夜,街道,路灯,药房

内存限制:1024 MiB 时间限制:2000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

一条长街上竖立着一些灯柱,上面安装着 盏路灯。我们沿街建立坐标系。第 盏路灯所在的灯柱位于坐标 处。在本题的前六个子任务中(共占 85 分),任意两盏路灯不会安装在同一个灯柱上,即所有 互不相同。在最后两个子任务中,每个灯柱上至多可以有两盏路灯。

为了照亮街道,可以点亮其中一部分路灯。被点亮的第 盏路灯具有亮度 。它发光时能够从所在灯柱开始,照亮一段长度为 米的连续街道。每盏被点亮的路灯既可以转向左边,也可以转向右边。若将第 盏路灯向左照,它照亮区间 ;若向右照,则照亮区间

我们选择一个非空的路灯集合来照亮一段街道。如果能够将集合中的每盏路灯选择向左或向右照射,使得以下两个条件同时成立,则称该集合是经济的

  • 被照亮的区间拼接成一段连续不断的街道区间;
  • 任意长度非零的区间不会被两盏或以上的路灯同时照亮。

下图展示了样例 2 中包含两盏路灯的经济子集及其照亮连续区间的方案。每盏路灯上方标注了其亮度。

:::align{center} :::

请求出路灯的经济子集个数。输出答案对 取模的结果。

输入格式

第一行包含一个整数 ),表示路灯的数量。接下来描述这些路灯。

接下来的 行,每行包含两个整数 ,分别表示第 盏路灯所在灯柱的坐标及其亮度()。

保证同一灯柱上至多安装两盏路灯,即对任意坐标 ,满足 不超过两个。

输出格式

输出一个整数——路灯的经济子集个数对 取模的结果。

样例

样例输入 1

2
2 3
7 2

样例输出 1

3

样例输入 2

3
1 1
3 1
4 2

样例输出 2

6

样例输入 3

5
3 2
4 2
5 2
6 2
7 2

样例输出 3

10

样例输入 4

4
3 2
7 4
7 4
8 2

样例输出 4

8

样例输入 5

5
1 2
1 3
2 1
2 2
4 1

样例输出 5

19

数据范围与提示

说明

在第一个样例中,所有三个非空路灯子集都是合法的。

在第二个样例中,除了集合 以外,其余所有子集都是合法的。

子任务

引入变量 ,表示可能位于同一坐标 的路灯的最大数量。

,则

,则 ,且若 ,那么 (在对应下标存在的情况下)。

子任务 分数 额外限制 依赖子任务
1 10
2 15 对任意两盏不同的灯 ,满足
3 对任意两盏不同的灯 ,满足
4 对任意两盏不同的灯 ,满足
5 10
6 20 1–5
7 10 ,则 1–6
8 5 1–7

翻译由 DeepSeek V4 Pro 完成