首页 > 其他 > 详细

模板—卢卡斯定理+乘法逆元

时间:2019-06-28 11:21:18      阅读:106      评论:0      收藏:0      [点我收藏+]
 1 LL inv(LL a,LL b)
 2 {
 3     LL ans=1,res=a;
 4     while(b)
 5     {
 6         if(b&1)ans=ans*res%p;
 7         res=res*res%p;
 8         b=b>>1;
 9     }
10     return ans%p;
11 }
12 LL C(LL n,LL m)
13 {
14     if(n<m)return 0;
15     return jc[n] * inv(jc[m],p-2)%p * inv(jc[n-m],p-2)%p;
16 }
17 LL Lucas(LL n,LL m)
18 {
19     if(!m)return 1;
20     return C(n%p,m%p)*Lucas(n/p,m/p)%p;
21 }

inv(a,p)=pow(a,p-2)%p;GCD(a,p)=1;

 

模板—卢卡斯定理+乘法逆元

原文:https://www.cnblogs.com/Al-Ca/p/11101561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!