P10761 [BalticOI 2024] Trains

题目背景

翻译自 [BalticOI 2024 Day1 T3](https://boi2024.lmio.lt/tasks/d1-trains-statement.pdf)。

题目描述

你已经抵达维尔纽斯,并希望参观立陶宛的不同城市。立陶宛的城市位于一条直线上,并按顺序从 $1$ 到 $N$ 编号。维尔纽斯是 $1$ 号城市。每个城市都有一个火车站,并且有一条从该站出发的单轨列车运营路线。你只能在该路线起点的城市上车,但可以在其任何一站下车。从第 $i$ 个城市开始的列车每行驶 $d_i$ 个城市就会停靠一站,并且其路线包含 $x_i$ 个停靠站(不包括起始城市)。如果 $d_i = 0$,则从第 $i$ 个城市出发的列车目前处于停运状态,因此你不能乘坐它们。 更具体地说,如果你在第 $i$ 个城市上车,你可以在任何编号为 $i + t \cdot d_i$ 的城市下车,其中 $1 \leq t \leq x_i$。请注意,由于你只希望参观立陶宛的城市,因此即使列车在其路线上有更多的停靠站,你也不会超过第 $N$ 个城市下车。 你打算使用列车前往参观一些城市。在规划你的旅行时,你开始思考从维尔纽斯出发的旅程有多少种不同的选择。如果两次旅行在不同的城市序列中停靠,则它们被视为不同。输出答案对 $10^9 + 7$ 取模的值。

输入格式

第一行一个整数 $N$。 接下来 $N$ 行每行两个整数 $d_i,x_i$。

输出格式

输出路线数对 $10^9 + 7$ 取模的值。

说明/提示

对于样例,存在如下七种路线: - $1$ - $1 \rightarrow 2$ - $1 \rightarrow 2 \rightarrow 4$ - $1 \rightarrow 3$ - $1 \rightarrow 3 \rightarrow 4$ - $1 \rightarrow 3 \rightarrow 5$ - $1 \rightarrow 4$ | 子任务编号 | 特殊性质 | 分值 | | :-----------: | :-----------: | :-----------: | | $1$ | $n \leq 15$ | $8$ | | $2$ | $n \leq 10^4$ | $13$ | | $3$ | $d_i = 1$ | $16$ | | $4$ | $x_i = 10^9$ | $34$ | | $5$ | 无特殊性质 | $29$ | 对于所有数据,保证 $1 \leq N \leq 10^5$,$0 \leq d_i,x_i \leq 10^9$。