题意


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

51nod-1220-约数之和的更多相关文章

  1. 51NOD 1220 约数之和 [杜教筛]

    1220 约数之和 题意:求\(\sum_{i=1}^n \sum_{j=1}^n \sigma_1(ij)​\) \[ \sigma_0(ij) = \sum_{x\mid i}\sum_{y\mi ...

  2. [51Nod 1220] - 约数之和 (杜教筛)

    题面 令d(n)d(n)d(n)表示nnn的约数之和求 ∑i=1n∑j=1nd(ij)\large\sum_{i=1}^n\sum_{j=1}^nd(ij)i=1∑n​j=1∑n​d(ij) 题目分析 ...

  3. 51nod 1220 约数之和【莫比乌斯反演+杜教筛】

    首先由这样一个式子:\( d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \)大概感性证明一下吧我不会证 然后开始推: \[ \sum_{i=1 ...

  4. 51Nod 约数之和

                              1220 约数之和                                  题目来源: Project Euler 基准时间限制:3 秒 ...

  5. 51nod 1238 最小公倍数之和 V3

    51nod 1238 最小公倍数之和 V3 求 \[ \sum_{i=1}^N\sum_{j=1}^N lcm(i,j) \] \(N\leq 10^{10}\) 先按照套路推一波反演的式子: \[ ...

  6. 【动态规划】mr359-最大公约数之和

    [题目大意] 选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大. 输入一个正整数S. 输出最大的约数之和. 样例输入 Sample Input 11 样例输出 Sample ...

  7. 约数之和(POJ1845 Sumdiv)

    最近应老延的要求再刷<算法进阶指南>(不得不说这本书不错)...这道题花费了较长时间~(当然也因为我太弱了)所以就写个比较易懂的题解啦~ 原题链接:POJ1845 翻译版题目(其实是AcW ...

  8. POJ1845Sumdiv题解--约数之和

    题目链接 https://cn.vjudge.net/problem/POJ-1845 分析 \(POJ\)里的数学题总是这么妙啊 首先有一个结论就是\(A=\prod{ \ {p_i}^{c_i} ...

  9. 51nod1220 约数之和

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1220 $G(n)=\sum\limits_{i=1}^n\sum\lim ...

  10. 51nod 1225 余数之和 数论

    1225 余数之和 题目连接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1225 Description F(n) ...

随机推荐

  1. # 20155337 2016-2017-2 《Java程序设计》第十周学习总结

    20155337 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 •网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就 ...

  2. centos7下mysql 开启远程登录

    安装mysql 安装mysql就不做过多的介绍了,相信小伙伴们都可以很轻松的安装 进入mysql命令行 mysql -u用户名 -p密码 新建远程登录的用户 grant all on *.* to a ...

  3. 【MySQL函数】日期篇

    1.date_format()函数 date_format(createtime,'%Y') 年 date_format(createtime,'%Y-%m') 年月 date_format(crea ...

  4. jmeter接口测试实例:带参数、带token

      测试内容简介: 1.get请求,无参数 2.get请求,参数为第一条响应中的id 3.get请求,带token 结构图:     下面进行详解: 一.添加cookie管理器等     1.添加ht ...

  5. sqlserver(2012)清理tempdb

    当数据库运行时间长了之后,tempdb变得特别大,几十G,受不了啊:当然我们知道重启 SQL Server服务的话,tempdb数据库会自动重新创建的,从而使 tempdb 回归到初始大小.但是这是生 ...

  6. 【视频编解码·学习笔记】4. H.264的码流封装格式 & 提取NAL有效数据

    一.码流封装格式简单介绍: H.264的语法元素进行编码后,生成的输出数据都封装为NAL Unit进行传递,多个NAL Unit的数据组合在一起形成总的输出码流.对于不同的应用场景,NAL规定了一种通 ...

  7. 【ML系列】简单的二元分类——Logistic回归

    对于了解机器学习中二元分类问题的来源与分析,我认为王树义老师这篇文章讲的非常好,通俗且易懂: http://blog.sciencenet.cn/blog-377709-1121098.html 但王 ...

  8. 2.hive里的增删改查

    1.hive的增删改查 查询数据库 hive> show databases; OK default Time taken: 0.254 seconds, Fetched: 1 row(s) h ...

  9. java高cpu占用和高内存占用问题排查 (转)

    高cpu占用 1.top命令:Linux命令.可以查看实时的CPU使用情况.也可以查看最近一段时间的CPU使用情况. 2.PS命令:Linux命令.强大的进程状态监控命令.可以查看进程以及进程中线程的 ...

  10. Shell脚本初学习

    第一个shell程序运行,教程来自:http://jingyan.baidu.com/article/8cdccae947f83e315413cd05.html 代码如下: #!/bin/sh tou ...