有一种奇怪的临时(较大)整数乘法:
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;
}