1.1快速幂

ll quick_pow(ll a,ll b,ll mod) {
    ll res=1;
    a%=mod;
    while(b) {
        if(b&1)(res*=a)%=mod;
        (a*=a)%=mod;b>>=1;
    }
    return res%mod;//mod==1
}

1.2快速乘

ll quick_mul(ll a,ll b,ll mod) {
    ll res=0;
    while(b) {
        if(b&1)
            (res+=a)%=mod;
        (a<<=1)%=mod;//注意此处会不会溢出
        b>>=1;
    }
    return res;
}

typedef unsigned long long ull;//浮点运算不太可靠
ll quick_mul(ll a,ll b,ll mod) {
    ll c=(long double)a/mod*b;//a*b/mod
    ll res=(ull)a*b-(ull)c*mod;//a*b-a*b/mod*mod
    return (res+mod)%mod;
}