数论的题大概有几类,积性函数、同余方程、概率、组合数学、其他一些什么东西和数论搅在一起= =
积性函数的题一般都要推公式,反演,线性筛,有时要递归处理子问题、杜教筛、应用某个函数的特殊性质
同余方程的问题有方程解个数和求解等东西,有的在指数上又变一下,然后就CRT,EXCRT,原根,BSGS,MillerRabin,rho
概率就DP,容斥,配合组合数学弄
组合数学分解质因数,有个Lucas定理(p是质数),快速阶乘(循环节,递归处理子问题)
一些东西弄成卷积后可以用FFT优化(比如DP方程) 传送门
用FFT转回整数记得+0.5
FFT在很多时候容易爆精度,有质数模数且能处理的规模即 2k≥n 可以考虑NTT,不然就用mtt,预处理n次单位复数根的话FFT效率提高很多
∑ni=1i2=n(n+1)(2n+1)6
∑ni=1i3=n2(n+1)24
求自然数幂和,有几类方法
第一类斯特林数(不会…)
递归
设 f(n,k)=∑ni=1ik
(n是2的倍数的情况)(懒得打分号了凑合着看吧)
f(n,k)=∑n/2i=1ik+∑n/2i=1(i+n/2)k
=f(n/2,k)+∑n/2i=1∑kj=0Cjk(n/2)jik−j
=f(n/2,k)+∑kj=0Cjk(n/2)k−j∑n/2i=1ij
=f(n/2,k)+∑kj=0Cjk(n/2)k−jf(n/2,j)
O(k2logn)
DP求解
(n+1)k+1=∑k+1j=0Cjk+1nj−>
(n+1)k+1−nk+1=∑kj=0Cjk+1nj−>
∑ni=1(i+1)k+1−∑ni=1ik+1=∑ni=1∑kj=0Cjk+1ij−>
(n+1)k+1−1=∑kj=0Cjk+1∑ni=1ij−>
Ckk+1∑ni=1ik=(n+1)k+1−1−∑k−1j=0Cjk+1∑ni=1ij−>
f(n,k)=(n+1)k+1−1−∑k−1j=0Cjk+1f(n,j)k+1
O(k2)
不知道写什么…就这样吧