Official

E - Sugoroku 3 Editorial by Nyaan


公式解説ではテクニカルな方法で 漸化式を求めていますが、ここでは別の方法を説明します。

\(dp_i := (\)マス \(i\) からマス \(N\) にたどり着くまでにサイコロを振る回数の期待値) とします。

\(i\) からサイコロを \(1\) 回振ると \(i, i+1, \dots, i+A_i\) のいずれかのマスに等確率で進みます。これをそのまま \(dp_{\ast}\) の式にすると次のようになります。

\[dp_i = \frac{1}{A_i + 1} \left(\sum_{j=0}^{A_i} dp_{i+j} \right) + 1 \]

このままでは左辺および右辺のシグマの中に \(dp_i\) が含まれているので \(dp_i\) を求められません。
そこで右辺のシグマから \(dp_i\) を取り出して左辺に移項しましょう。

\[dp_i = \frac{1}{A_i + 1} dp_i + \frac{1}{A_i + 1} \left(\sum_{j=1}^{A_i} dp_{i+j} \right) + 1 \]

\[dp_i - \frac{1}{A_i + 1} dp_i = \frac{1}{A_i + 1} \left(\sum_{j=1}^{A_i} dp_{i+j} \right) + 1 \]

あとは左辺が \(dp_i\) になるように式変形して定数倍をかければ完成です。

\[ \frac{A_i}{A_i + 1} dp_i = \frac{1}{A_i + 1} \left(\sum_{j=1}^{A_i} dp_{i+j} \right) + 1 \]

\[dp_i = \frac{1}{A_i} \left(\sum_{j=1}^{A_i} dp_{i+j} \right) + \frac{A_i + 1}{A_i}\]

この式は公式解説の式と一致します。

posted:
last update: