Solution - P3986 斐波那契数列

P3986 斐波那契数列

idea:

观察性质,应用扩展欧几里得算法。

解决方案:

首先观察到一个性质:由于 a,b>0a,b > 0 ,对于所有 i2i\geq 2 ,有 fi>fi1f_i > f_{i-1} ,故有 fi+1=fi1+fi>2fi1f_{i+1} = f_{i-1} +f_i > 2\cdot f_{i-1} 。这说明 kk 最多只可能 O(logk)O(\log k) 项。故 kk 出现在第几项是可以枚举的。

然后我们发现:对于所有 i2i\geq 2 ,都可以将 fif_i 写成 pia+qibp_i\cdot a + q_i\cdot b 的形式且 pi,qi>0p_i,q_i>0 。不仅如此,还有 pi=fibi2,qi=fibi1p_i = fib_{i-2}, q_i = fib_{i-1} 。这个时候可以使用扩欧求解了。更加让人开心的是,由于 qiq_ipip_ifibfib 的相邻两项,它们是互质的。

时间复杂度大约是 O(log2k)O(\log^2 k)