数论-朴素卢卡斯(Lucas)模板
生活随笔
收集整理的這篇文章主要介紹了
数论-朴素卢卡斯(Lucas)模板
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
montgomery() 函數計算 t1^t2 % p 的值.
?
1 typedef long long LL; 2 3 LL mont(LL t1, LL t2) 4 { 5 LL ans = 1; 6 t1 %= _P; 7 while (t2) { 8 if (t2 & 1) ans = ans*t1%_P; 9 t2 >>= 1, t1 = t1*t1%_P; 10 } 11 return ans; 12 } 13 14 LL C(LL dn, LL up) 15 { 16 if (!up || up == dn) return 1; 17 if (dn-up < up) up = dn-up; 18 LL t1 = 1, t2 = 1; 19 for (LL i = 1; i <= up; ++i) { 20 t1 = t1 * i % _P; 21 t2 = t2 * (dn-i+1) % _P; 22 } 23 return t2 * mont(t1, _P-2) % _P; 24 } 25 26 LL Lucas(LL dn, LL up) 27 { 28 if (!up) return 1; 29 return C(dn%_P, up%_P) * Lucas(dn/_P, up/_P) % _P; 30 }?
轉載于:https://www.cnblogs.com/ghcred/p/7436745.html
總結
以上是生活随笔為你收集整理的数论-朴素卢卡斯(Lucas)模板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML-JS 循环 函数 递归
- 下一篇: 简单使用TFS管理源代码