新模板_final_final
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卢卡斯定理
const uLL p = LONG_MAX; uLL qpow(uLL n,uLL k)
{
uLL res=1;
while(k){
if(k&1) res=(res%p)*(n%p)%p; n=(n%p)*(n%p)%p;
k>>=1;
}
return res;
}
uLL Clucas(uLL n,uLL k)
{
if(n uLL res=1; for(uLL i=1;i<=k;i++){ uLL a=(n-k+i)%p; uLL b=i%p; res=res*(a*qpow(b,p-2)%p)%p; } return res%p; } uLL lucas(uLL n,uLL k)//C(n,k)对p取余 { if(k==0) return 1; k=min(k,n-k); return (Clucas(n%p,k%p)%p)*(lucas(n/p,k/p)%p)%p; } 普通组合数 uLL C(uLL n,uLL m) { uLL ans=1; m=min(n-m,m); for(uLL i=1;i<=m;i++) ans=ans*(n-m+i)/(i); //分子分母都从小往大乘,不会出现精度问题return ans; }