有一种奇怪的临时(较大)整数乘法:
using ull = unsigned long long; ull bmul(ull a, ull b, ull m) { ull c = a * b - (ull)((long double)a / m * b + 0.5L) * m; if (c < m) return c; return c + m; }
有一种奇怪的临时(较大)整数乘法:
using ull = unsigned long long; ull bmul(ull a, ull b, ull m) { ull c = a * b - (ull)((long double)a / m * b + 0.5L) * m; if (c < m) return c; return c + m; }