Luogu7325 [WC2021] 斐波那契

题意:给出 ,有 组询问,每次询问给出 ,定义数列 ,当 ,求最小的满足

,时限


为斐波那契数列,则

下斐波那契数列的循环节长度是 的(证明从略),故 的循环节也是 ,只用考虑前 项。

即求满足 的最小的 。一个自然的想法是将 提取到一侧, 提取到另一侧,然后用 Hash 维护。但并不总是能直接求逆。

,记 同除 的结果,可得等价方程

可知 。又注意到 ,故只有可能是 (实现了条件的参数分离)。

,可以写出

此时满足互质,可以求逆变为

于是,在模数 下(模数是由 决定的)对于候选答案 ,记为三元组 对于询问 写成三元组 然后到 Hash 表中查询。

对每个模数分别预处理,总复杂度为 。(其中 是约数之和)