[ZOJ3329]One Person Game
期望倒著推。
設 \(f_i\) 表示期望還需多少次結束。
我們可以得到式子
\[f_i=(\sum f_{x+i}p_i)+f_0p_0+1
\tag{$1$}
\]
發現每一項都與 f0 有關。
我們直接換元得
\[f_i=a_i f_0+b_i\tag{$2$}
\]
將 \((2)\) 代入 \((1)\) 得
\[\begin{gather}
f_i=(\sum(a_{x+i}f_0+b_{x+i})p_i)+f_0p_0+1\tag{$3$}\\
=f_0(p_0+\sum a_{x+i}p_i)+(\sum b_{x+i}p_i)+1\tag{$4$}
\end{gather}
\]
其中
\[\begin{gather}
a_x=p_0+\sum a_{x+i}p_i\tag{$5$}\\
b_x=(\sum b_{x+i}p_i)+1\tag{$6$}
\end{gather}
\]
到這步就可以遞推 \(a,b\) 了,我們解方程 \(f_0=a_0f_0+b_0\) 即可。