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})\) 计算。
51nod-1220-约数之和的更多相关文章
- 51NOD 1220 约数之和 [杜教筛]
1220 约数之和 题意:求\(\sum_{i=1}^n \sum_{j=1}^n \sigma_1(ij)\) \[ \sigma_0(ij) = \sum_{x\mid i}\sum_{y\mi ...
- [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∑nj=1∑nd(ij) 题目分析 ...
- 51nod 1220 约数之和【莫比乌斯反演+杜教筛】
首先由这样一个式子:\( d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \)大概感性证明一下吧我不会证 然后开始推: \[ \sum_{i=1 ...
- 51Nod 约数之和
1220 约数之和 题目来源: Project Euler 基准时间限制:3 秒 ...
- 51nod 1238 最小公倍数之和 V3
51nod 1238 最小公倍数之和 V3 求 \[ \sum_{i=1}^N\sum_{j=1}^N lcm(i,j) \] \(N\leq 10^{10}\) 先按照套路推一波反演的式子: \[ ...
- 【动态规划】mr359-最大公约数之和
[题目大意] 选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大. 输入一个正整数S. 输出最大的约数之和. 样例输入 Sample Input 11 样例输出 Sample ...
- 约数之和(POJ1845 Sumdiv)
最近应老延的要求再刷<算法进阶指南>(不得不说这本书不错)...这道题花费了较长时间~(当然也因为我太弱了)所以就写个比较易懂的题解啦~ 原题链接:POJ1845 翻译版题目(其实是AcW ...
- POJ1845Sumdiv题解--约数之和
题目链接 https://cn.vjudge.net/problem/POJ-1845 分析 \(POJ\)里的数学题总是这么妙啊 首先有一个结论就是\(A=\prod{ \ {p_i}^{c_i} ...
- 51nod1220 约数之和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1220 $G(n)=\sum\limits_{i=1}^n\sum\lim ...
- 51nod 1225 余数之和 数论
1225 余数之和 题目连接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1225 Description F(n) ...
随机推荐
- 20155307 实验一《Java开发环境的熟悉》实验报告
(一)命令行下Java程序开发 题目:实现Fibonacci数列功能,并进行测试 命令行下的程序截图 上传到了码云: 遇到的问题? 可以直接使用Javac,不加环境变量也行,但是文件的名字与类名必须一 ...
- WPF 控件被禁用,悬浮提示不显示问题
原文:WPF 控件被禁用,悬浮提示不显示问题 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/89 ...
- 1127: [POI2008]KUP
1127: [POI2008]KUP https://lydsy.com/JudgeOnline/problem.php?id=1127 分析: 如果存在一个点大于等于k,小于等于2k的话,直接输出. ...
- Kettle数据源连接配置
说明: 通过(图3.1)我们可以看到创建数据源时需要配置相应的参数: Connection Name(必填):配置数据源使用名称,如:Rot_Source Host Name(必填):数据库主机IP地 ...
- thinkphp5框架生成二维码(二)
上篇已经讲过了SDK之类的,这个不再重复,有不知道的童鞋们,请去看上篇文章吧. 这里我用的方法比较老旧,大家有更好的方法,可以进行改良,还有linux服务器,记得给文件权限,否则生成的文件会失败的.大 ...
- mysql查看锁表与解锁
查看锁表语句 show OPEN TABLES where In_use > 0; 找到锁表的进程 show processlist; 删除锁表进程 kill 51045123;
- component-scan标签的use-default-filters属性的作用以及原理分析
一.背景 我们在Spring+SpringMVC+Mybatis的集成开发中,经常会遇到事务配置不起作用等问题,有时候就是因为包扫描出了问题,其中component-scan的标签的use-def ...
- 2017软工第十周个人PSP
11.17--11.23本周例行报告 1.PSP(personal software process )个人软件过程. C(类别) C(内容) ST(开始时间) ET(结束时间) INT(间隔时间) ...
- 基于spec探路者团队贪吃蛇作品的评论
1 运动功能 由以上两图贪吃蛇的位置不同可知,运动功能实现.并且我能够通过使用键盘上的上下左右方位键控制蛇的移动方向,蛇在控制的方向上进行直线前进. 2 吃食物功能 以上两图可知吃食物功能实现.当界面 ...
- 测试与优化bugbugbugbug
单元测试