题解:P12847 [蓝桥杯 2025 国 A] 斐波那契数列
这题还挺有意思。
首先观察到序列 \(G\) 的定义
\[G_1=2,\quad G_2=3,\quad G_i=G_{i-1}\times G_{i-2}\quad(i>2)
\]
意味着每一项都可拆成若干个 \(2\) 和 \(3\) 的幂相乘。
令
\[G_i=2^{a_i}\,3^{b_i},
\]
则由递推可知
\[(a_1,b_1)=(1,0),\quad(a_2,b_2)=(0,1),\quad(a_i,a_{i-1})\mapsto (a_{i-1}+a_{i-2},\,b_{i-1}+b_{i-2})
\]
即 \((a_i)\) 和 \((b_i)\) 都是满足斐波那契关系的序列,只是初值不同。
进一步令
\[P_n=\prod_{i=1}^nG_i
\]
则
\[P_n
=\prod_{i=1}^n2^{a_i}3^{b_i}
=2^{\sum_{i=1}^n a_i}\;3^{\sum_{i=1}^n b_i}.
\]
根据斐波那契数列前缀和的性质,可证明
\[\sum_{i=1}^n a_i=F_n,\qquad
\sum_{i=1}^n b_i=F_{n+1}-1,
\]
其中 \(F_k\) 为最常见的斐波那契数列(\(F_1=1,F_2=1\))。这样一来问题就转化为
\[P_n
=2^{F_n}\times3^{F_{n+1}-1}\bmod998244353.
\]
由于题目中 \(n\) 可达 \(10^{18}\),必须在 \(O(\log n)\) 时间内计算斐波那契数对 \(M-1\)(其中 \(M=998244353\))的值,以及在 \(O(\log n)\) 时间内做模幂运算。
前者可用快速倍增法直接求得 \((F_n,F_{n+1})\bmod (M-1)\),后者用快速幂完成。
注意指数要对 \(M-1\) 取模是因为 \(M\) 为质数,可利用费马小定理将幂指数降模。

浙公网安备 33010602011771号