这里的逆元是啥?
例如给两个数,7,20。
因为7*3%20=1,则3就是7的逆元。一个数a与它逆元的乘积对b取余等于1。
求逆元的公式就是套一个模板,假如说我们求a关于b的逆元就是解这个方程:
a*x + b*y == 1,这个方程就可以直接求了。求出的x就是a关于b的逆元。
欧几里得算法模板:
void Ex_gcd(int a, int b, int &x, int &y)
{
if(b == 0)//递归出口
{
x = 1;
y = 0;
return;
}
int x1, y1;
Ex_gcd(b, a%b, x1, y1);
x = y1;
y = x1-(a/b)*y1;
}
可以试着做做HDU1756
http://acm.hdu.edu.cn/showproblem.php?pid=1576
不会的话,可以看我的解题报告:Hdu 1576:A/B