快速幂 (快速乘优化)

http://acm.hdu.edu.cn/showproblem.php?pid=5187

这道题普通的快速幂过不去,得用到快速乘的快速幂优化

直接贴代码

ll p;
ll mul(ll a, ll b) {
    ll ans = 0;
    while(b) {
        if(b & 1) ans = (ans + a ) % p;
        b >>= 1;
        a = (a + a) % p;
    }
    return ans;
}
ll pow(ll a, ll b) {
    ll res = 1;
    ll base = a;
    while(b) {
        if(b & 1) res = mul(res, base) % p;
        base = mul(base, base) % p;
        b >>= 1;
    }
    return res;
}

猜你喜欢

转载自blog.csdn.net/henu_jizhideqingwa/article/details/81460053