CF407B Long Path
题目描述
有一天,小 Vasya 发现自己处于一个包含 $n+1$ 个房间的迷宫中,这些房间从 $1$ 到 $n+1$ 编号。最初,Vasya 处于第一个房间,为了走出迷宫,他需要到达第 $n+1$ 个房间。
迷宫的结构如下。每个房间都设有两个单向传送门。设第 $i$ 个房间($1 \leq i \leq n$),第一个传送门可以从该房间移动到编号为 $i+1$ 的房间,第二个传送门则可以移动到编号为 $p_i$ 的房间,其中 $1 \leq p_i \leq i$。
为了不迷路,Vasya 决定如下行动:
- 每次 Vasya 进入某个房间时,他就会在天花板上用粉笔画一个叉。最开始,Vasya 在房间 $1$ 的天花板上画一个叉。
- 假设 Vasya 当前在房间 $i$,且已经在该房间的天花板上画了一个叉。那么,如果该天花板上现在有奇数个叉,Vasya 就会使用第二个传送门(即前往 $p_i$ 号房间),否则他就会使用第一个传送门(前往 $i+1$ 号房间)。
请帮 Vasya 计算,最终他到达第 $n+1$ 号房间时,总共使用了多少次传送门。由于答案可能很大,将答案对 $1000000007$ ($10^9+7$) 取模后输出。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 10^{3}$),表示房间数。第二行包含 $n$ 个整数 $p_i$($1 \leq p_i \leq i$)。每个 $p_i$ 表示在第 $i$ 个房间使用第二个传送门可以到达的房间编号。
输出格式
输出一个整数,表示小男孩走出迷宫所需的传送门使用次数。由于该值可能很大,请输出其对 $1000000007$ 取模后的结果。
说明/提示
由 ChatGPT 5 翻译