【数论 组合数相关】几种组合数的求法

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 礼物

 

posted @ 2020-11-25 13:00  andyc_03  阅读(389)  评论(0编辑  收藏  举报