快速乘
title: 快速乘
categories:
- ICPC
tags:
- null
abbrlink: dc64ee44
date: 2024-12-03 00:00:00
输出一个整数,表示a*b mod p
的值。
数据范围
1≤a,b,p≤1018
ll qadd(ll a, ll b, ll p)
{
ll res = 0;
while (b)
{
if (b & 1) res = (res + a) % p;
a = (a + a) % p;
b >>= 1;
}
return res;
}
利用longlong取模溢出相抵消
ll mul(ll x,ll y,ll m){
x%=m;y%=m;
ll d=((long double )x*y/m);
d=x*y-d*m;
if(d>=m)d-=m;
if(d<0)d+=m;
return d;
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 爱飞鱼的blog!