线性递推阶乘的逆元

原文链接:http://www.cnblogs.com/adelalove/p/9915175.html
由于逆元是完全积性函数即
f(m*n)=f(m)*f(n)
于是
f(i+1)=1'*2'*........*i'*(i+1)'
左右两边同时乘上(i+1)
左边得到f(i+1)*(i+1)
右边得到1'*2'*........*i'=f(i)
于是f(i)=f(i+1)*(i+1)
求1!到maxn!的逆元
inv[maxn]=mod_pow(fac[maxn],mod-2);
for(ll i=maxn-1;i>=0;i--)
inv[i]=(inv[i+1]*(i+1))%mod;

猜你喜欢

转载自www.cnblogs.com/cutemush/p/12005990.html