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)模板相关推荐

  1. kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题)

    kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题) 总题单 week 3 [kuangbin带你飞] 题单 最小生成树 + 线段树 Cli ...

  2. 数学--数论--组合数(卢卡斯+扩展卢卡斯)模板

    ACM常用模板合集 #include<cstdio> const int N = 2000 + 5; const int MOD = (int)1e9 + 7; int comb[N][N ...

  3. 『数学』--数论--组合数+卢卡斯定理+扩展卢卡斯定理

    组合数: 在N个数中选取M个数,问选的方式有几种? 直接递归暴力简单 #include<cstdio> const int N = 2000 + 5; const int MOD = (i ...

  4. 数学--数论---欧拉筛 模板

    ACM常用模板合集 typedef long long ll; bool ok[maxn]; int prime[maxn],phi[maxn],cnt; void sieve() { phi[1]= ...

  5. 数论一些奇怪的模板题(贺题福利)

    法雷序列(欧拉函数的前缀和) 组合数取模(卡速米求逆元) 乘法逆元(扩展欧几里得求逆元) 筛素数(埃氏筛(线性筛)求素数) 欧拉函数(O(sqrt(n))求欧拉函数) 网格的走法(卡特兰数取模) 又一 ...

  6. 洛谷P2181答案C语言,洛谷P2181 对角线(组合数)

    题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. 输出格式: 第一行输出交点数 ...

  7. [洛谷P3807]【模板】卢卡斯定理

    题目大意:给你$n,m,p(p \in \rm prime)$,求出$C_{n + m}^m\bmod p(可能p\leqslant n,m)$ 题解:卢卡斯$Lucas$定理,$C_B^A\bmod ...

  8. 数论-扩展中国剩余定理

    求解 n 个同余方程 x ≡ Ci (mod Mi) 推荐一下讲证明的文章: 1.https://www.cnblogs.com/TheRoadToTheGold/p/8458326.html 很简洁 ...

  9. 『ACM』ACM模板合集

    写在前面: 第一年小白拿铜牌,第二年队友出走,加上疫情原因不能回校训练导致心底防线彻底崩盘,于是选择退役. 自从退役之后,一直想我打了那么久的ACM,什么也没留下觉得很难受,突然想到我打ACM的时候, ...

最新文章

  1. nodejs操作mysql创建库和表_Nodejs操作MySQL数据库
  2. JDK12下的ArrayList源码解读 与 Vector的对比
  3. global.min.css,css3-媒体查询样式不覆盖原始样式
  4. 计算机网络之物理层:3、奈式准则和香农公式
  5. PyOpenGL之3D界面详解(五)
  6. python x y 定位点击,python - Python找到一个点相对于其他四个已知点的x,y位置 - 堆栈内存溢出...
  7. 特斯拉副总裁回应“质量不合格”报道:离谱 已准备起诉
  8. 1.[精通Hibernate笔记]Hibernate简介
  9. ISIS 中 Level1-2路由器向本区域内Level-1邻居下发缺省路由
  10. 让webstorm支持avalon语法自动补全
  11. element ui 选项卡切换_Vue.js + element-ui 扫盲(服务端对大前端的扫盲)
  12. 联想集团杨元庆:联想携手SAP解决用户云计算应用痛点
  13. 手撕包菜磁力搜索引擎的开源说明
  14. hashmap按值排序
  15. ZEMAX | 如何创建复杂的非序列物体
  16. launching IDEA-If you already have a 64-bit JDK installed, define a JAVA_HOME...问题解析处理
  17. 改进的树状长短期记忆网络(Tree-LSTM)语义表示
  18. Excel快捷键:Ctrl+E的功能汇总
  19. 台风怎么看内存颗粒_高体质CJR颗粒!七彩虹CVN捍卫者内存评测
  20. python for ArcGIS 绘制上海市环线地图

热门文章

  1. 华硕笔记本,宽带连上,可以上网, 但收到不无线
  2. 解决IE10以下对象不支持“bind“属性或方法
  3. 某公司邮件系统的安全检测
  4. C库函数 - strcspn()
  5. 取出响应头中包含多个set-cookie的值
  6. 序列化以及反序列化二叉树
  7. java中的数组、队列、堆栈
  8. python学习笔记(八)类(classes)
  9. Kafka Connect简介
  10. 深度剖析 synchronized