ZZW's Blog

Step by step!


  • 首页

  • 关于

  • 标签12

  • 分类6

  • 归档22

  • 搜索

(扩展)欧几里得算法模板

发表于 2019-02-07 更新于 2020-07-03 分类于 ACM模板
本文字数: 341 阅读时长 ≈ 1 分钟

欧几里得算法:$ O(log^n)$

1
2
3
4
//求两个整数的最大公约数:gcd(a, b) = gcd(b, a % b)
LL gcd(LL a, LL b) {
return b ? gcd(b, a % b) : a;
}

扩展欧几里得算法:$ O(log^n)$

1
2
3
4
5
6
7
//求解二元一次方程:ax + by = gcd(a,b)
LL ext_gcd(LL a, LL b, LL &x, LL &y) {
if(b == 0LL) {x = 1LL; y = 0LL; return a;} //不妨假设 y=0,则x=1
LL res = ext_gcd(b, a % b, x, y);
LL tmp = x; x = y, y = tmp - a / b * y; //x'=y,y'=x-a/b*y
return res; //返回上一个状态
}
  • 本文作者: wzomg
  • 本文链接: http://blog.wzomg.cn/posts/9a0f7abe.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
(扩展)欧几里得
威尔逊定理例题汇总
(扩展)中国剩余定理模板
  • 文章目录
  • 站点概览
wzomg

wzomg

A thousand miles begins with a single step.
22 日志
6 分类
12 标签
GitHub E-Mail 博客园 简书
Creative Commons
  1. 1. 欧几里得算法:$ O(log^n)$
  2. 2. 扩展欧几里得算法:$ O(log^n)$
© 2019 – 2021 wzomg  粤ICP备19066467号-1 | 113k | 1:43
0%