题意
$f(x)$为斐波那契数列,求$\large\left(\sum\limits_{i=1}^nf(i)\right) mod f(m) mod p$
$0<n,m,p<1e18$
题解
- m 为偶数 - $\frac n m$为偶数,$f(n) mod f(m)=f(n\%m)$
- $\frac n m$为奇数,$f(n) mod f(m)=f(m-1)f(n\%m) mod f(m)$
 
- m 为奇数 - $\frac n m$为偶数,$\frac n {2m}$为偶数,$f(n) mod f(m)=f(n\%m)$
- $\frac n m$为偶数,$\frac n {2m}$为奇数,$f(n) mod f(m)=f(m)-f(n\%m)$
- $\frac n m$为奇数,$\frac n {2m}$为偶数,$f(n) mod f(m)=f(m-1)f(n\%m) mod f(m)$
- $\frac n m$为奇数,$\frac n {2m}$为奇数,$f(n) mod f(m)=f(m)-f(m-1)f(n\%m) mod f(m)$
 
- 简化$f(m-1)f(n\%m) mod f(m)$ - 性质:若$n\ge1,r\ge2$,则$f(n)f(n+r-1)-f(n+1)f(n+r-2)=(-1)^{n+1}f(r-2)$ - 令$k=n\%m,k=n+1,m-1=n+r-2$,则$f(n)f(k-1)-f(m-1)f(k)=(-1)^kf(m-k)$ - 所以$f(m-1)f(k) mod f(m)=(-1)^{k+1}f(m-k) mod f(m)$ - 当$k$为奇时,$f(m-1)f(n\%m) mod f(m)=f(m-k)$
- 当$k$为偶时,$f(m-1)f(n\%m) mod f(m)=f(m)-f(m-k)$
 
代码
| 1 | 
 |