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) ...
随机推荐
- 3-3 修改haproxy配置文件
1.需求 2.个人思路 3.个人心得 4.
- Sublime Text 3安装完美的Vim支持,ActualVim/NeoVim
很多IDE和编辑器都有Vim插件用于支持Vim模式,但大多数都有些问题,拿我一直用的Idea来说,它的vim在ctrl+v后,选择多行的行前插入,如果这几行中有空行,它不会把空格算在内,所以最终是会少 ...
- NES像素风格的Raspberry
周末小实践,vue+树莓派+一言API 一直有个想法,让树莓派做后端,实现一个有趣的网络服务.可是,苦于不会前端,迟迟无法动手.最近由于工作任务需要研究了一下前端. 问过前端大佬们,个个都说你得用vu ...
- CSP201604-2:俄罗斯方块
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...
- nodejs express 加载html模板
在nodejs中如使用express框架,她默认的是ejs和jade渲染模板.由于我在使用的时候觉得她的代码书写方式很不爽还是想用html的形式去书写,于是我找了使用了html模板. 直接上代码,主要 ...
- 天马行空DevOps-Dev平台建设概述
概述 DevOps(Development和Operations的组合词)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与整合.它是一 ...
- dp算法之硬币找零问题
题目:硬币找零 题目介绍:现在有面值1.3.5元三种硬币无限个,问组成n元的硬币的最小数目? 分析:现在假设n=10,画出状态分布图: 硬币编号 硬币面值p 1 1 2 3 3 5 编号i/n总数j ...
- 20个常用Linux性能监控工具/命令
20个常用Linux性能监控工具/命令 对于 Linux/Unix 系统管理员非常有用的并且最常用的20个命令行系统监视工具.这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因 ...
- OOP 1.3 动态内存分配
1.new运算符用法 分配一个变量:P=new T; T是任意类型名,P是类型为T的指针.动态分配出一片大小为sizeof(T)字节的内存空间,将该空间的起始地址赋值给P(new T的返回值为 T). ...
- Fiveplus--王者光耀1
**光耀101** 汇总博客: 关文涛: 博客地址:随笔1 随笔2 杨蓝婷: 博客地址:随笔1 随笔2 蔡雅菁: 博客地址:随笔1 随笔2 黄森敏: 博客地址:随笔1 随笔2 林兴源: 博客地址:随笔 ...