卢卡斯定理模板
用于快速求解C(n,m)%p,p为质数
typedef long long ll;
ll expow(ll a,ll b,ll mod)
{
ll ret=1;
while(b)
{
if(b&1)
{
ret*=a;
ret%=mod;
}
a*=a;
a%=mod;
b>>=1;
}
return ret;
}
ll C(ll n,ll m,ll mod)
{
if(m>n) return 0;
m=min(m,n-m);
ll a=1,b=1;
while(m)
{
a=a*n%mod;
b=b*m%mod;
n--;
m--;
}
return a*expow(b,mod-2,mod)%mod;
}
ll lucas(ll n,ll m,ll p) //p为质数
{
if(m==0) return 1;
return C(n%p,m%p,p)*lucas(n/p,m/p,p)%p;
}