题目不是很难,但取模比较繁琐,为此 WA 了两遍。
题目大意
求:
$$ \sum_{1 \leq i \leq n & 1 \leq j \leq m & i \neq j} (n % i)(m % j) $$
设 $t = \min(n, m)$
一步步向下推:
设 $f(t, n) = \sum\limits_{i = 1}^t(n % i)$
$$ \sum_{1 \leq i \leq n & 1 \leq j \leq m & i \neq j} (n % i)(m % j) $$
$$ = f(n, n)\times f(m, m) - \sum_{i = 1}^{t}(n % i)(m % i) $$
$$ f(t, n) = \sum_{i = 1}^t(n - i\lfloor\frac{n}i\rfloor) $$
$$ = tn - \sum_{i = 1}^ti\lfloor\frac{n}i\rfloor $$
由于 $\lfloor\frac{n}i\rfloor$ 只有约 $\sqrt n$ 种取值,我们可以在 $O(\sqrt n)$ 内求出。
对于 $\sum\limits_{i = 1}^{t}(n % i)(m % i)$ 一样处理。
1 |
|