AT_joigsp2025_j 電波塔 (Radio Towers)

题目描述

在 EGOI 国,有 $N$ 根无线电塔沿东西方向排列,通过这些电塔之间的信息通信为国民提供互联网服务。无线电塔按照从西到东的顺序编号为 $1$ 到 $N$。编号为 $i$ 的电塔($1 \leq i \leq N$),能够接收从西方传来的波长不小于 $A_i$ 且不大于 $A_i + L$ 的电波,并且能够向东方发射波长为 $B_i$ 的电波。也就是说,对于 $1 \leq i_1 < i_2 \leq N$,当 $A_{i_2} \leq B_{i_1} \leq A_{i_2} + L$ 时,可以从电塔 $i_1$ 向电塔 $i_2$ 传递信息。 最近,EGOI 国对互联网通信的稳定性提出了更高要求。EGOI 国政府决定以“能够按顺序编号进行信息传递的电塔选取方案数”作为通信稳定性的标准。具体来说,希望求出满足以下条件的选取 $1$ 根及以上电塔的方案数: - 设选中的电塔按编号从小到大依次为 $i_1, i_2, \dots, i_k$,则对于所有 $j$($1 \leq j \leq k-1$),必须有 $A_{i_{j+1}} \leq B_{i_j} \leq A_{i_{j+1}} + L$。 给定每个电塔能够收发的波长信息,请编写程序,输出满足条件的电塔选取方案总数对 $1\,000\,000\,007$ 取模的结果。 ---

输入格式

输入以以下格式从标准输入给出: > $N$ $L$ $A_1$ $B_1$ $A_2$ $B_2$ $\vdots$ $A_N$ $B_N$

输出格式

输出满足条件的电塔选取方案总数对 $1\,000\,000\,007$ 取模的值,输出一行。

说明/提示

## 子任务 1. ($20$ 分)$N \leq 16$。 2. ($20$ 分)$N \leq 5\,000$。 3. ($25$ 分)$L = 0$。 4. ($35$ 分)无额外限制。 --- ## 样例解释1 考虑选择电塔 $1,2,3$ 的情况。 - 由于不满足 $A_2 \leq B_1 \leq A_2 + L$,因此无法从电塔 $1$ 向电塔 $2$ 传递信息。 - 满足 $A_3 \leq B_2 \leq A_3 + L$,所以可以从电塔 $2$ 向电塔 $3$ 传递信息。 因此,这种选法不满足条件。 再考虑选择电塔 $1,3$ 的情况。 - 满足 $A_3 \leq B_1 \leq A_3 + L$,可以从电塔 $1$ 向电塔 $3$ 传递信息。 因此,这种选法满足条件。 所有满足条件的选法为 $\{1\}$、$\{2\}$、$\{3\}$、$\{1,3\}$、$\{2,3\}$,共 $5$ 种。因此,输出 $5$ 对 $1\,000\,000\,007$ 取模也为 $5$。 该输入样例满足所有子任务的限制。 --- ## 样例解释2 该输入样例满足子任务 $1,2,4$ 的限制。 --- ## 样例解释3 该输入样例满足子任务 $1,2,4$ 的限制。 # 数据范围 - $2 \leq N \leq 300\,000$。 - $0 \leq L \leq 300\,000$。 - $1 \leq A_i \leq 300\,000$($1 \leq i \leq N$)。 - $1 \leq B_i \leq 300\,000$($1 \leq i \leq N$)。 - 所有输入均为整数。 由 ChatGPT 5 翻译