分治|快速乘(模板)

快速乘和快速幂原理一样
主要用于是64bit整数乘法时会爆longlong但是写高精度又太麻烦的情况
代码

#include#define ll long longusing namespace std; inline ll ksc(ll a, ll b, ll mod){ ll ans = 0; while( b > 0 ){ if( b&1 ) ans = (ans + a) % mod; a = ( a + a ) % mod; b >>= 1; } return ans; }

【分治|快速乘(模板)】还有一种用 long double 优化的代码
inline ll ksc(ll x, ll y, ll mod) { return ( x * y - (ll) ( (long double) x / mod*y )*mod + mod ) % mod; }

    推荐阅读