まずはBiがすべて0であるような問題を考える。ループがない、つまり同じマスに二回止まることがないので、ゴール以前の各マスに止まる確率を足し合わせたものが求める期待値になっている。
p(i)= サイコロを振ってiが書かれた面が出る確率
dp[x]=マスxに止まる確率
とするとき、0-basedで考えると遷移は
dp[x]=∑0≤k≤xdp[x−k]p(k)
となって、これはオンラインFFTで解ける形になっている。
Biが必ずしも0でない場合について考える。Bx>0であるようなマスxについては、オンラインFFT中にdp[x]に加算する時に、代わりにdp[x+Bx]に加算すればよい。また、Bx<0、つまり休みのマスについては、そのようなマスに止まる確率×∣Bx∣を結果に足せばよさそう……だが、他のマスからBの影響で進んできた場合は休まないので、dpを構成し終えてからdp[x]×∣Bx∣を後で足すと正しく計算できない。やはりオンラインFFT中にdp[x]に加算する瞬間に結果に足す必要がある。