const ll M=1e5+3;
ll fac[100005]; //阶乘
ll inv_of_fac[100005]; //阶乘的逆元
ll qpow(ll x,ll n)
{
ll ret=1;
for(; n; n>>=1)
{
if(n&1) ret=ret*x%mod;
x=x*x%mod;
}
return ret;
}
void init()
{
fac[1]=1;
for(int i=2; i<=M; i++)
fac[i]=fac[i-1]*i%mod;
inv_of_fac[M]=qpow(fac[M],mod-2);
for(int i=M-1; i>=0; i--)
inv_of_fac[i]=inv_of_fac[i+1]*(i+1)%mod;
}
ll C(ll a,ll b)
{
if(b>a) return 0;
if(b==0) return 1;
return fac[a]*inv_of_fac[b]%mod*inv_of_fac[a-b]%mod;
}
组合数取模(待补充)
最新推荐文章于 2025-01-16 17:39:29 发布
本文介绍了一种高效计算阶乘及其逆元的方法,并利用这些方法来计算组合数。通过快速幂运算加速计算过程,适用于解决大规模组合数学问题。
171万+

被折叠的 条评论
为什么被折叠?



