题意


\[
\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})\) 计算。

最新文章

  1. Type.IsContextful 说明
  2. timus_1007_bfs
  3. sharepoint2010升级到sharepoint2013的升级步骤和过程
  4. hadoop data 相关开源项目(近期学习计划)
  5. 学习笔记-动态树Link-Cut-Tree
  6. WWF3动态修改工作流<第九篇>
  7. Windows Phone 离主流系统还很远
  8. Usage of readonly and const
  9. Junit4学习笔记
  10. UVA 586 Instant Complexity
  11. 【HOJ2430】【贪心+树状数组】 Counting the algorithms
  12. Android Service命令
  13. nexus5 root教程
  14. Singleton模式(Singleton创建类型)c#简单的例子
  15. IPv4子网掩码回顾
  16. python怎么实现数组增加一行或多行
  17. Centos常用命令之:ln
  18. BZOJ1975 [Sdoi2010]魔法猪学院 k短路
  19. layui(一)——layDate组件常见用法
  20. 让CSS某行不失效

热门文章

  1. 20155321 2016-2017-2《Java程序设计》课堂实践项目
  2. mysql的启动,停止与重启
  3. C#基础之继承
  4. BZOJ1010_玩具装箱toy_KEY
  5. 【CF833D】Red-Black Cobweb
  6. Java 验证码识别库 Tess4j 学习
  7. Git之hotfix热修复分支
  8. 第七章移动互联网与移动IP
  9. static和构造函数初始化顺序
  10. node项目设置环境变量