O(N) 求 1~N 逆元 模板及证明
生活随笔
收集整理的這篇文章主要介紹了
O(N) 求 1~N 逆元 模板及证明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Solution
inv[i]=(mo?mo?/?i)?inv[mo?%?i]?%?mo
證明:
設 t=mo?/?i ,k=mo?%?i ,
則有:
t?i+k≡0?(mod?mo)有:
?t?i≡k?(mod?mo)兩邊同時除以 i?k 得到:
?t?inv[k]≡inv[i]?(mod?mo)即:
inv[i]≡?mo?/?i?inv[mo?%?i]?(mod?mo)即:
inv[i]≡(mo?mo?/?i)?inv[mo?%?i]?%?mo證畢。
- 適用于模數 mo 是質數的情況,能夠 O(N) 時間求出 1?N 對模 mo 的逆元。
Code
inv[0]=inv[1]=1; for (int i=2;i<=n;i++) inv[i]=(long long)(mo-mo/i)*inv[mo%i]%mo;總結
以上是生活随笔為你收集整理的O(N) 求 1~N 逆元 模板及证明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JZOJ 5443. 【NOIP2017
- 下一篇: JZOJ 5444. 【NOIP2017