1.本菜鸡只会用模板求逆元,逆元是什么我都不知道,上模板:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
/*扩展欧几里得算法
如果a,b互质,则x为a摸b的逆元,即exgcd(a,b)=1;
返回值为a,b的最大共约数
ax+by=exgcd(a,b)
*/
ll exgcd(ll a,ll b,ll &x,ll &y){
    if(b==0){
        x=1,y=0;
        return a; //到达递归边界返回
    }
    ll ans=exgcd(b,a%b,x,y),temp=y;
    y=x-a/b*y,x=temp; //把x y变成这一层的
    return ans;//得到a b的最大公因数
}
//x0+t*b/gcd(a,b) 和 y0-t*a/gcd(a,b) 也是方程 ax+by=gcd(a,b) 的解
/*求最小正整数x,并保证ax+by=c*/
ll cal(ll a,ll b,ll c){
    ll x,y,gcd=exgcd(a,b,x,y);
    if(c%gcd!=0) return -1;
    x*=c/gcd,b/=gcd;
    if(b<0) b=-b;
    ll inv=x%b;
    if(inv<=0) inv+=b;
    return inv;
}
int main(){
    ll a,b,t;
    scanf("%lld",&t);
    while(t--){
        scanf("%lld%lld",&a,&b);
        ll inv=cal(a,b,1);
        if(inv==-1) printf("Not Exist\n");
        else printf("%lld\n",inv);
    }
    return 0;
}
/*
 逆元的一个重要性质
当p为奇素数,1~p-1的整数模p的所有逆元对应1~p-1中所有的整数, 既是单射也是满射。
比如,当p=7时,1~6模7 对应的逆元分别是 1,4,5,2,3,6
*/