CF1106F Lunar New Year and a Recursive Sequence——矩阵快速幂&&bsgs
题意 设 $$f_i = \left\{\begin{matrix} 1 , \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i < k\\ \prod_{j=1}^k f_{i-j}^{b_j} \ mod \ p, \ \ \ \ \ i > k \end{matrix}\right.$$ 求 $f_k$($1 \leq f_k < p$),使得 $f_m = n$.($1 \leq k\leq 100$) 分析 $f_n$ 可以表示成 ${f_k}^x$ 的形式,也就是指数的线性递推式,用矩阵快速幂求出最终 $f_n$ 中的次数就行了。 $$\begin{bmatrix} f_k\\ f_{k-1}\\ \vdots \\ f_1 \end{bmatrix} = \begin{bmatrix} b_1 & b_2 & \cdots & b_k\\ 1 & 0 & 0 & 0\\ \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 1 & 0 \end{bmatrix} \cdot \begin{bmatrix} f_{k-1}\\ f_{k-2}\\ \vdots \\ f_0 \end{bmatrix}$$ 即 $F_n = B\cdot F_{n-1} = B^{n-k}F_k$