您的位置:首页 > 其它

[noip2012]同余方程 题解

2017-10-29 21:31 211 查看
emmm,一道当时的模板题吧。什么只要会ex_gcd就可以A的题。

变换一下式子:ax=k(mod b)可以变为ax+k=by,再移一下项,可得:

ax+by=-k,y的正负可以变,然后,就是ex_gcd了。

#include<bits/stdc++.h>
using namespace std;
int a,b,x,y;
int ex_GCD(int a,int b,int &x,int &y)
{
if(b==0){
x=1,y=0;
return a;
}
int r=ex_GCD(b,a%b,x,y);
int t=x;
x=y;
y=t-(a/b)*y;
return r;
}
int main()
{
cin>>a>>b;
ex_GCD(a,b,x,y);
if(x<0)x=x+(-x/b+1)*b;
cout<<x;
return 0;
}


其实可以当作板子背下来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: