扩展欧几里得模板
2017-08-18 10:01
218 查看
扩展欧几里得模板
[align=center][/align]
int e_gcd(int a, int b, int& x, int& y){ if(b == 0){ x = 1; y = 0; return a; } int ans = e_gcd(b, a%b, y, x); y -= x*(a/b); return ans; }
[align=center]
[/align]
[align=left]返回值为gcd(a,b),用于计算a*x+b*y==gcd(a,b)的通解[/align]
[align=left] x=x0+b/gcd(a,b)*t;[/align]
[align=left] y=y0-a/gcd(a,b)*t;[/align]
[align=left]最小解:[/align]
[align=left] am=a/gcd(a,b),bm=b/gcd(a,b);[/align]
[align=left] x=((x%bm)+bm)%bm; [/align]
[align=left] y=((y%am)+am)%am;[/align]
[align=left]保证是正数,x,y只能计算一个最小解,另一个看对方值计算[/align]
求模的逆元
这里x是a相对于m的逆元
公式a*x+m*y==1; //需要gcd(a,m)==1
求得x做最小解可得逆元
[align=left]
[/align]
相关文章推荐
- 扩展欧几里得模板(洛谷1082 同余方程NOIP 2012 提高组 第二天 第一题)
- 模板总结——扩展欧几里得
- (模板) hdu-5685-Problem A(扩展欧几里得)
- gcd模板(欧几里得与扩展欧几里得、拓展欧几里得求逆元)
- 扩展欧几里得模板&逆元求法
- poj 1061 青蛙的约会 (扩展欧几里得模板)
- 欧几里得+扩展欧几里得(转载、模板)
- 扩展欧几里得模板题
- 双六问题(扩展欧几里得模板)
- poj 1061 青蛙的约会 (扩展欧几里得模板)
- 欧几里得模板以及扩展欧几里得
- hdu 2669 Romantic 扩展欧几里得求线性方程模板题
- 模板:欧几里得 扩展欧几里得 乘法逆元
- CodeForces - 7C Line(扩展欧几里得模板)
- 扩展欧几里得各类问题模板
- 扩展欧几里得 模板(转)
- 求乘法逆元模板(扩展欧几里得)
- 计蒜客 机器人的相遇问题(扩展欧几里得模板题)
- 扩展欧几里得模板
- The Balance(扩展欧几里得模板题)