exgcd模板

\(ax+by\)
\(=gcd(a,b)\)
\(=gcd(b,a%b)\)
\(=gcd(b,a-(a/b)*b)\)
\(=bx'+(a-(a/b)*b)y'\)
\(=ay'+(x'-(a/b)y')b\)

\(x=y'\)
\(y=x'(a/b)y\)


#include<cstdio>
#include<algorithm>
using namespace std;
pair<int,int> exgcd(int x,int y)
{
    if(x==1&&y==0)
    return make_pair(x,y);
    pair<int,int> ans=exgcd(y,x%y);
    return make_pair(ans.second,ans.first-(x/y)*ans.second);
} 
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    pair<int,int> ans=exgcd(a,b);
    printf("%d\n",(ans.first%b+b)%b);
    return 0;
}
全部评论

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
07-07 12:47
门头沟学院 Java
码农索隆:竟然还真有卡体检报告的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务