p3263-solution

P3263 Solution

link

\(\displaystyle\left\lfloor\left(\frac{b+\sqrt d}2\right)^n\right\rfloor \bmod 7528443412579576937\)

首先看到这个式子的形式,我们先把向下取整扔掉,研究里面的东西。

注意到我们有 \(b^2\le d<(b+1)^2\),因此我们可以构造一个式子 \(\displaystyle\left(\frac{b-\sqrt d}2\right)^n\),它的值我们是比较好求的。现在我们考虑求出 \(\displaystyle\left(\frac{b+\sqrt d}2\right)^n+\left(\frac{b-\sqrt d}2\right)^n\)

现在设 \(\displaystyle f_n=\left(\frac{b+\sqrt d}2\right)^n+\left(\frac{b-\sqrt d}2\right)^n,f_0=2,f_1=b\)。因为

\(\begin{aligned} x^n+y^n&=(x+y)(x^{n-1}+y^{n-1})-xy^{n-1}-x^{n-1}y\\ &=(x+y)(x^{n-1}+y^{n-1})-xy(x^{n-2}+y^{n-2}) \end{aligned}\)

所以就有 \(f_n=bf_{n-1}-\dfrac{b^2-d}4f_{n-2}\)

因为 \(b\bmod2=1,d\bmod4=1\),所以 \(\dfrac{b^2-d}4\)是个整数,也就是 \(f_n\) 都是整数。

于是我们得到了 \(f_n\) 的递推式,矩阵快速幂碾过去即可。

最后我们讨论一下减去 \(\displaystyle\left(\frac{b-\sqrt d}2\right)^n\) 和向下取整,我们发现当 \(n\) 为奇数时上式是一个大于 \(-1\) 的非正数,减掉以后再向下取整不影响结果。而当 \(n\) 为偶数时上式是一个小于 \(1\) 的非负数,如果 \(b^2\not=d\) 减掉它以后答案要 \(-1\)

posted @ 2024-03-01 09:03  iorit  阅读(12)  评论(0)    收藏  举报