51nod-1220-约数之和

题意

\[\sum _{i=1}^n\sum _{j=1}^nd(ij) \\ d(x)=\sum _{e|x}e \]

\(n\le 10^9\)

分析

没有推出来。这题有几个要点要学习。

第一,推式子要有方向,不能看到什么就动一动,最后搞出来一个算不了的东西。

第二,对于同一个多重和式的不同处理:

\[\sum _{i=1}^n\sum _{j=1}^{\lfloor\frac{n}{i}\rfloor}=\sum _{j=1}^n\sum _{i=1}^{\lfloor\frac{n}{j}\rfloor}=\sum _{ij\le n}=\sum _{i=1}^n\sum _{j|i} \]

不同的情况可以用不同的处理,不过最后两种在平常的题目中用的比较少,主要是在推杜教筛表达式的时候会经常使用这种方法。

第三,看到可以化开的东西不要急,先把其他东西处理好,变成一个比较漂亮的形式再处理这个。

第四,求和上界的选取。在推式子的过程中,为了化简,可以把求和上界做一些不影响答案的改动,使得它与其他变量无关。比如说

\[\sum _{i=1}^n\sum _{j=1}^{\lfloor\frac{n}{i}\rfloor}j\lfloor\frac{n}{ij}\rfloor \]

这里既然当 \(j>\lfloor\frac{n}{i}\rfloor\) 的时候后面的值为 0,那不如直接把 \(j\) 的求和上界改为 \(n\) ,简化一些条件。

于是就可以开始推这题了。

\[\begin{aligned} \sum _{i=1}^n\sum _{j=1}^n\sum _{d|ij}d&=\sum _{i=1}^n\sum _{j=1}^n[\frac{d}{\gcd(d,i)}|j]d \\ &=\sum _{i=1}^n\sum _{d=1}^{n^2}d\lfloor\frac{n\gcd (d,i)}{d}\rfloor && (简化d的求和上界)\\ &=\sum _{e=1}^n\sum _{i=1}^{\lfloor\frac{n}{e}\rfloor}\sum _{d=1}^{\lfloor\frac{n^2}{e}\rfloor}de\lfloor\frac{ne}{de}\rfloor[\gcd(i,d)=1] \\ &=\sum _{e=1}^ne\sum _{i=1}^{\lfloor\frac{n}{e}\rfloor}\sum _{d=1}^{n}d\lfloor\frac{n}{d}\rfloor[\gcd(i,d)=1] && (再次简化d的求和上界) \\ &=\sum _{i=1}^n\sum _{e=1}^{\lfloor\frac{n}{i}\rfloor}e\sum _{d=1}^nd\lfloor\frac{n}{d}\rfloor[\gcd(d,i)=1] \\ &=\sum _{a=1}^n\mu (a)\sum _{i=1}^{\lfloor\frac{n}{a}\rfloor}g(\lfloor\frac{n}{ai}\rfloor)\sum _{d=1}^{\lfloor\frac{n}{a}\rfloor}ad\lfloor\frac{n}{ad}\rfloor \end{aligned} \]

\(g(n)=\sum _{i=1}^n\lfloor\frac{n}{i}\rfloor,f(n)=\sum _{i=1}^ni\lfloor\frac{n}{i}\rfloor\) ,那么

\[ans=\sum _{a=1}^na\mu (a)g(\lfloor\frac{n}{a}\rfloor)f(\lfloor\frac{n}{a}\rfloor) \]

\(O(n^\frac{3}{4})\) 计算。

posted @ 2017-08-20 10:59  permui  阅读(333)  评论(0编辑  收藏  举报