当前位置: 首页 > news >正文

逆元

逆元

费马小定理解(借助快速幂)

单次计算的复杂度即为快速幂的复杂度 \(\mathcal O(\log X)\) 。限制:\(MOD\) 必须是质数,且需要满足 \(x\)\(MOD\) 互质。

LL inv(LL x) { return mypow(x, mod - 2, mod);}

扩展欧几里得解

此方法的 \(MOD\) 没有限制,复杂度为 \(\mathcal O(\log X)\) ,但是比快速幂法常数大一些。

int x, y;
int exgcd(int a, int b, int &x, int &y) { //扩展欧几里得算法if (b == 0) {x = 1, y = 0;return a; //到达递归边界开始向上一层返回}int r = exgcd(b, a % b, x, y);int temp = y; //把x y变成上一层的y = x - (a / b) * y;x = temp;return r; //得到a b的最大公因数
}
LL getInv(int a, int mod) { //求a在mod下的逆元,不存在逆元返回-1LL x, y, d = exgcd(a, mod, x, y);return d == 1 ? (x % mod + mod) % mod : -1;
}

离线求解:线性递推解

\(\mathcal O(N)\) 的复杂度完成 \(1-N\) 中全部逆元的计算。

inv[1] = 1;
for (int i = 2; i <= n; i ++ )inv[i] = (p - p / i) * inv[p % i] % p;
http://www.hskmm.com/?act=detail&tid=38026

相关文章:

  • 扩展欧几里得 exgcd
  • 离散对数 bsgs 与 exbsgs
  • 常见数列
  • 20232314 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 【LTDC】LTDC 简介
  • 分类器案例 - -一叶知秋
  • Markdown数学公式 - -一叶知秋
  • 最大流
  • 最小割树 Gomory-Hu Tree
  • 最小割
  • 差分约束
  • 图论常见结论及例题
  • 最长路(topsort+DP算法)
  • 二分图最大匹配
  • 最短路径树(SPT问题)
  • 欧拉路径/欧拉回路 Hierholzers
  • 无源汇点的最小割问题 Stoer–Wagner
  • CF2152G
  • 染色法判定二分图 (dfs算法)
  • 链式前向星建图与搜索
  • 一般图最大匹配
  • 平面图最短路(对偶图)
  • 多源汇最短路(APSP问题)
  • 最小生成树(MST问题)
  • 缩点(Tarjan 算法)
  • 常见概念
  • 单源最短路径(SSSP问题)
  • CNCF项目记录2025-10
  • 关于 vue项目 代理的坑;baseURL必须为空;代理才会生效
  • 点分治 / 树的重心