【数论】[51Nod 1236] 序列求和 V3【无实现】

Description

求斐波那契数列前N项的K次方和
N<=10^18,K<=100000
答案对1000000009取模

Solution

考虑斐波那契通项公式

F(i)=15[(1+52)i(152)i]

a=1+52,b=152

相应的做K次幂,对后面二项式定理展开

j=0kCjk(ai)j(bi)kj

我们把a和b的指数j移到内层,i移出来

对于相同的系数 (1)kjCjk ,我们发现它是以 ajbkj 为公比的等比数列

5是1e9+9的二次剩余,相当于解二次同余方程

预处理好a和b的幂次
那么直接枚举j,用等比数列求和计算

另外有一个小Tips是a*b=-1

猜你喜欢

转载自blog.csdn.net/hzj1054689699/article/details/80056708