확장 유클리드 알고리즘
2025. 7. 8. 22:11ㆍC++ study
?
ax+by=gcd(a, b)의 정수 해를 구하기 위해서 고안된 알고리즘!
설명
- a=0 인 경우에는 by=b, y=1 : (x, y)=(0,1)
- b=0인 경우에는 ax=a, x=1: (x, y)=(1,0)
- 종료 조건은 위와 같이 표현할 수 있음!

- 위처럼 유클리드 호제법과 비슷한 방식으로 처리가능하다.

using ll = long long;
tuple<ll, ll, ll> egcd(ll a, ll b) {
if (b == 0) return {1, 0, a};
auto [x1, y1, g] = egcd(b, a % b);
return {y1, x1 - (a / b) * y1, g};
}
'C++ study' 카테고리의 다른 글
| Trie (0) | 2025.09.09 |
|---|---|
| 중국인 나머지 정리(Chinese Remainder Theorem : CRT) (0) | 2025.07.09 |
| 이분 매칭(Bipartite Matching) (0) | 2025.03.10 |
| 2-SAT (0) | 2025.03.01 |
| SCC (Strongly Connected Component) (0) | 2025.02.16 |