欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

快速乘/规避溢出

程序员文章站 2022-06-02 20:07:54
...

洛谷最短路题的讨论中看到的,学习了一下。计算\(xy \mod p\)

long long quick_mul(long long x,long long y,long long p)
{
    if (y==0) return 0;
    if (y==1) return x%p;
    long long re;
    re=quick_mul(x,y>>1,p);
    if ((y&1)==1) return (re+re+x)%p;
             else return (re+re)%p;
}

思想就是\(ab = 2*(a\frac{b}{2})\)

如果动机不是规避溢出的话,把取模去掉,会快很多。