洛谷最短路题的讨论中看到的,学习了一下。计算\(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})\)
如果动机不是规避溢出的话,把取模去掉,会快很多。