L - N mod M Editorial by miscalculation53

行列累乗による別解

\(S_i\) は等比数列の和になります。しかし、等比数列の和の公式

\[1 + r + r^2 + \cdots + r^{n-1} = \frac{1 - r^n}{1 - r}\]

は、法 \(M\) が素数でない場合には mod 逆元をもたないことがあるためそのままでは使えません(公式解説にあるように \(\bmod \ M(r - 1)\) で考えるというような工夫をすることはできます)。

ここで、

\[\begin{pmatrix} r & 1 \\ 0 & 1 \end{pmatrix}^n = \begin{pmatrix}r^n & 1 + r + r^2 + \cdots + r^{n-1} \\ 0 & 1 \end{pmatrix}\]

が成り立ちます(証明は数学的帰納法でできます)。これを利用すると、行列累乗により項数 \(n\) の等比数列の和を \(O(\log n)\) で計算することができます。よってこの問題は \(O(K \log D_{\max})\) で解けました(\(D_{\max}\)\(D_i\) たちの最大値)。

関連する問題:

posted:
last update: