【数论 组合数相关】几种组合数的求法
1.当n,m都很小的时候可以利用杨辉三角直接求。
C(n,m)=C(n-1,m)+C(n-1,m-1);
2、n和m较大,但是p为素数的时候
使用Lucas定理
C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p
线性筛出[1,p)中所有数关于p的逆元,O(logn)求解
3、n和m较大,且p为不是素数
这就需要用到扩展卢卡斯定理适用于计算任意的C(n,m)%p问题,其中n,m,p为任意正整数
求解过程主要应用了乘法逆元(扩欧Exgcd求)、中国剩余定理、快速幂
对于一个p,利用唯一分解定理将它拆开
然后对于每个质因子求一下,最后利用中国剩余定理即可
题目 p2183 礼物