P7739 [NOI2021] 密码箱

考虑对于原先的那个 \(f\) 再取一次倒数,那么就变成了形如:

\[\frac{1}{a_0+\frac{1}{a_1+\frac{1}{\cdots}}} \]

的连分数形式。我们考虑对于从深向上合并,会有 \(\frac{a^\prime}{b^\prime}=\frac{1}{a_i+\frac{a}{b}}=\frac{b}{a_ib+a}\),即 \(a^\prime\leftarrow b,b^\prime\leftarrow a_ib+a\)。我们发现这样可以转成矩阵维护,即变成:

\[\begin{bmatrix} a^\prime\\ b^\prime \end{bmatrix}=\begin{bmatrix} 0& 1 \\ 1 & a_i \end{bmatrix}\begin{bmatrix} a\\ b \end{bmatrix}\]

那么最终由矩阵结合律发现就是若干个上述矩阵相乘得到。

考虑两个操作。对于 W,给序列最后一项加 \(1\)。即

\[\begin{bmatrix} 0& 1 \\ 1 & a_e \end{bmatrix}\leftarrow\begin{bmatrix} 0& 1 \\ 1 & a_e+1 \end{bmatrix} \]

那么发现直接在末尾乘一个矩阵可以变成

\[\begin{bmatrix} 0& 1 \\ 1 & a_e \end{bmatrix} \begin{bmatrix} 1& 1 \\ 0 & 1 \end{bmatrix} \]

即可。那么我们考虑 E 操作,发现对于 \(a_e >1\) 是好做的,直接乘上

\[\begin{bmatrix} 1& -1 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 0& 1 \\ 1 & 1 \end{bmatrix} ^2=\begin{bmatrix} 0& -1 \\ 1 & 2 \end{bmatrix} \]

但是对于 \(a_e=1\) 的,可以认为操作变成:

\[\begin{bmatrix} 0& 1 \\ 1 & a_{e-1} \end{bmatrix}\begin{bmatrix} 1& 1 \\ 0 & 1 \end{bmatrix}\begin{bmatrix} 0& 1 \\ 1 & 1 \end{bmatrix}\]

发现等价于在末尾乘上一个

\[\begin{bmatrix} 0& -1 \\ 1 & 2 \end{bmatrix} \]

剩下的使用平衡树维护即可。

posted @ 2025-12-23 14:59  tanghg  阅读(9)  评论(0)    收藏  举报