龟速乘 - a * b爆ll且模数很大时的计算方法

LL qmul(LL a, LL k, LL b)
{
    LL res = 0;
    while (k)
    {
        if (k & 1) res = (res + a) % b;
        a = (a + a) % b;
        k >>= 1;
    }
    return res;
}

如果int128也会爆掉的话可以用这种方法

也是快速幂的思想,快速幂是乘,这个是加

你可能感兴趣的:(模板,c++,算法)