博弈论主要要找先手后手间赢的规律,比如奇数偶数时
2和3,6和7这样相邻的数肯定不互质
LCA找最近公共祖先,自己也算自己的祖先,这个代码还待学,还没会
乘法逆元,若整数 b,m 互质,并且对于任意的整数 a,如果满足 b|a,则存在一个整数 x,使得 a/b≡a*x(modm),则称 x 为 b 的模 m 乘法逆元
快速幂求逆元
#include<bits/stdc++.h>
using namespace std;
#define int long long
int quick(int a, int b, int p)
{
int res = 1;
while(b)
{
if(b & 1) res = (res * a) % p;
b >>= 1;
a = (a * a) % p;
}
return res;
}
signed main()
{
int n;
cin >> n;
int a, b;
while (n -- )
{
scanf("%lld%lld", &a, &b);
if(a % b == 0) puts("impossible");//不互质,不存在逆元
else cout << quick(a, b-2, b) << endl;
}
return 0;
}