Loading

22.3 杂题

WC2021 斐波那契

这种分析的方法太经典了。

\(f_0=0,f_1=,f_{n}=f_{n-2}+f_{n-1}\)\(f_n\) 就是常见的斐波那契数列,易得 \(F_n=af_{n-1}+bf_{n}\)

于是我们只需找出最小的 \(n\) 使得 \(a'f_{n-1}\equiv b'f_{n}\pmod m\),如果 \(m\) 是质数我们可以直接预处理(这里用到结论 \(f\) 的循环节是 \(O(m)\) 的)。

否则考虑除掉 \(\gcd(a',b',m)\),变成 \(a_1f_{n-1}\equiv b_1f_{n}\pmod {m_1}\),注意到这时还是有可能不互质。

但是相邻斐波那契数是互质的,记 \(p=\gcd(a_1,m_1)=\gcd(f_n,m_1),q=\gcd(b_1,m_1)=\gcd(f_{n-1},m_1)\),可以再除掉这个 \(p,q\)。于是有 \(a_2f_{n-1}\equiv b_2f_{n}\pmod {m_2}\),这时直接预处理 \(\dfrac{f_{n}}{f_{n-1}}\bmod m_2\) 即可。

用一个三元组维护 \((p,q,\dfrac{f_{n}}{f_{n-1}})\) 维护即可。

posted @ 2023-05-14 21:56  Semsue  阅读(23)  评论(0编辑  收藏  举报
Title