思路:数学推导过程
代码:
const long long mod=998244353;
int n;
inline int qmi(int x,int y){
int z=1;
for(;y;y>>=1,x=x*x%mod)
if(y&1)z=z*x%mod;
return z;
}
void solve(){
cin>>n;
vector<int>a(n+2),sum(n+2),dp(n+2);
for(int i=1;i<n;i++)
cin>>a[i];
for(int i=n-1;i;i--){
dp[i]=((sum[i+1]-sum[i+a[i]+1]+mod+1)*qmi(a[i],mod-2)%mod+1)%mod;
sum[i]=(sum[i+1]+dp[i])%mod;
}
cout<<dp[1]<<endl;
}