我们可以发现当我们走到第一次
i
时
就不难得出
fi+1=fi+1+fi−fpi+1
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
typedef long long ll;
const int P=1e9+7;
const int N=1005;
int n,f[N];
int main(){
freopen("t.in","r",stdin);
freopen("t.out","w",stdout);
scanf("%d",&n);
f[1]=0; int p;
for (int i=1;i<=n;i++) {
scanf("%d",&p);
f[i+1]=((ll)f[i]+1+f[i]+P-f[p]+1)%P;
}
printf("%d\n",f[n+1]);
return 0;
}