逆元线性递推

数的逆元

ll inv[maxn];

inv[1] = 1;
for(ll i = 2; i < maxn; ++ i) 
    inv[i] = (mod - mod / i) * inv[mod % i] % mod;
View Code

 

阶乘的逆元

ll inv_lv[maxn];
ll lv[maxn];

lv[0] = 1;
for(ll i = 1; i < maxn; ++ i) 
    lv[i] = lv[i - 1] * i % mod;
inv_lv[maxn - 1]= qpow(lv[maxn - 1], mod - 2);
for(ll i = maxn - 2; i >= 0; -- i)
    inv_lv[i]= inv_lv[i + 1] * (i + 1) % mod;
View Code

 

posted @ 2020-06-01 20:33  Ruby·Z  阅读(118)  评论(0)    收藏  举报