首先这个东西只给自己用
C(n,m)=C(n−1,m−1)+C(n−1,m)
n个数字选m个数
第二类斯特林数表示将n个元素划分到m个不同的集合中的方案数
S(n,m)=S(n−1,m−1)+S(n−1,m)∗m
第n个,要么独立新建一个,要么到之前的去
逆元
费马小定理求逆元
ap−1≡a∗ap−2≡1modp
线性求逆元
ik+a≡0modpik⋅i−1a−1+a⋅i−1a−1≡0modpka−1+i−1≡0modpi−1≡−ka−1modpi−1≡−⌊ip⌋⋅invpmodimodp
条件:p为素数,否则可能存在不存在的逆元
CPPinv[i] = (p - p \ i) * inv[p % i] % p;