ACM模版
描述
题解
只要逆元学得足够好,这个题就是秒出思路,最后结果就是
(n∗B′)%MOD
,其中
B′
就是
B
<script type="math/tex" id="MathJax-Element-3">B</script> 的逆元。
裸逆元题,直接套模版就 OK 了,扩展欧几里得 GG。
代码
#include <iostream>
using namespace std;
const int MOD =
9973;
long long extendGcd(
long long a,
long long b,
long long &x,
long long &y)
{
if (a ==
0 && b ==
0)
{
return -
1;
}
if (b ==
0)
{
x =
1;
y =
0;
return a;
}
long long d = extendGcd(b, a % b, y, x);
y -= a / b * x;
return d;
}
long long modReverse(
long long a,
long long n)
{
long long x, y;
long long d = extendGcd(a, n, x, y);
if (d ==
1)
{
return (x % n + n) % n;
}
else
{
return -
1;
}
}
int main(
int argc,
const char * argv[])
{
int T;
cin >> T;
long long n, B;
while (T--)
{
cin >> n >> B;
long long b = modReverse(B, MOD);
cout << (n * b) % MOD <<
'\n';
}
return 0;
}