1 条题解
-
0
我们需要求的是:
$$S=\sum_{x=1}^m\sum_{i=1}^n\left(\left\lfloor\frac{a_i}{x}\right\rfloor+a_i~\mathrm{mod}~ x\right) $$其中的取模运算可以这样改写:
$$a_i~\mathrm{mod}~ x=a_i-x\left\lfloor\frac{a_i}{x}\right\rfloor $$因此有:
$$\begin{aligned}S&=\sum_{x=1}^m\sum_{i=1}^n\left(a_i+\left(1-x\right)\left\lfloor\frac{a_i}{x}\right\rfloor\right)\\ &=\sum_{i=1}^n\sum_{x=1}^m\left(a_i+\left(1-x\right)\left\lfloor\frac{a_i}{x}\right\rfloor\right)\\ &=\sum_{i=1}^n\left(m\cdot a_i+\sum_{x=1}^m\left(1-x\right)\left\lfloor\frac{a_i}{x}\right\rfloor\right)\end{aligned}$$由于 ,而 时 ,因此实际上:
$$\begin{aligned}S&=\sum_{i=1}^n\left(m\cdot a_i+\sum_{x=1}^{a_i}\left(1-x\right)\left\lfloor\frac{a_i}{x}\right\rfloor\right)\\&=\sum_{i=1}^n\left(m\cdot a_i+\sum_{x=1}^{a_i}\left\lfloor\frac{a_i}{x}\right\rfloor-\sum_{x=1}^{a_i}x\left\lfloor\frac{a_i}{x}\right\rfloor\right)\end{aligned} $$在 的范围内共有 个数被 整除,因此:
$$\left\lfloor\frac{a_i}{x}\right\rfloor=\sum_{k=1}^{a_i}\left[x\mid k\right] $$那么有:
$$\begin{aligned}\sum_{x=1}^{a_i}\left\lfloor\frac{a_i}{x}\right\rfloor&=\sum_{x=1}^{a_i}\sum_{k=1}^{a_i}\left[x\mid k\right]\\&=\sum_{k=1}^{a_i}\sum_{x=1}^{a_i}\left[x\mid k\right]\\&=\sum_{k=1}^{a_i}\tau\left(k\right)\end{aligned} $$这里 是因数个数函数,是一个常见的数论函数 。
同样地,也有:
$$\begin{aligned}\sum_{x=1}^{a_i}x\left\lfloor\frac{a_i}{x}\right\rfloor&=\sum_{x=1}^{a_i}\sum_{k=1}^{a_i}x\left[x\mid k\right]\\&=\sum_{k=1}^{a_i}\sum_{x=1}^{a_i}x\left[x\mid k\right]\\&=\sum_{k=1}^{a_i}\sigma\left(k\right)\end{aligned} $$这里 是因数和函数,也是一个常见的数论函数 。
那么我们需要求的就是:
$$S=\sum_{i=1}^n\left(m\cdot a_i+\sum_{k=1}^{a_i}\tau\left(k\right)-\sum_{k=1}^{a_i}\sigma\left(k\right)\right) $$对于 的正整数 , 和 可以通过筛法以 的时间复杂度预处理获得。当然,对于 和 这两个特殊的数论函数的前缀和,也可以采用杜教筛以 的时间复杂度预处理获得(
然而完全没必要)。对于本题,在预处理后可依据上面的公式以 的时间复杂度计算出 的值,也即本题的输出。
然后就是卡常了。
- 1
信息
- ID
- 421
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 59
- 已通过
- 3
- 上传者