1.循环节
f(n)=af(n−1)+bf(n−2),f(1)=c,f(2)=d
f(n)%p循环节:当c是膜p的二次剩余,枚举n=(p-1)的因子,
当c是膜p的非二次剩余,枚举n=(p-1)(p+1)的因子。
2.二次剩余
d是膜p的二次剩余当且仅当
d(p−1)/2≡1(mod p)
d是膜p的非二次剩余当且仅当
d(p−1)/2≡-1(mod p)
3.GCD(x,y)==k的个数
GCD(x,y)==k在x∈(1,n),y∈(1,m)中的个数
//GCD(x,y)==i的个数f[i];
if(n<m) swap(n,m);
ll ans=0;
for(ll i=n;i;i--)
{
f[i]=(n/i)*(m/i);
for(ll j=2*i;j<=n;j+=i)
f[i]-=f[j];
}
4.二叉树的个数
n个节点的二叉树的个数
Hn=1/(n+1)Cn2n
n个节点二叉树叶子数的个数
Hn=n∗Hn−1
5.高次幂取膜
ab%p=aφ(p)+b%φ(p) b>=φ(p)
φ(p)为p的欧拉函数
6.除法取膜
ab%p=a%pbb
当p是质数是可以用
a∗b−1%p
7.逆元
b−1%p=bp−2%p