莫比乌斯反演求LCM的另一种做法
一个经典问题
求
\[
\sum_{k=1}^n\mathbb{lcm}(k,n)
\]
一般的做法是使用\(\varphi(n)\)函数。
不经典的做法
\[
\begin{align*}
\sum_{k=1}^n\mathbb{lcm}(k,n)
&=\sum_{k=1}^n\frac{nk}{\gcd(n,k)}\tag{gcd与lcm的关系}\\
&=\sum_{d|n}\sum_{k=1}^{n/d}\frac{ndk}{d}[\gcd(n,dk)=d]\tag{枚举gcd(n,k)}\\
&=\sum_{d|n}\sum_{k=1}^{n/d}nk[\gcd(\frac{n}{d},k)=1]\tag{同消去d}\\
&=n\sum_{d|n}\sum_{k=1}^dk[\gcd(d,k)=1]\tag{用d代替n/d}\\
&=n\sum_{d|n}\sum_{k=1}^dk\sum_{j|gcd(d,k)}\mu(j)\tag{莫比乌斯函数的性质}\\
&=n\sum_{j|n}\mu(j)\sum_{d|n/j}\sum_{k=1}^djk\tag{交换求和次序}\\
&=n\sum_{j|n}\mu(j)j\sum_{d|n/j}\frac{d(d+1)}{2}\tag{等差数列求和公式}\\
&=\frac{n}{2}\left(\sum_{j|n}\mu(j)j\sum_{d|n/j}d^2+\sum_{j|n}\mu(j)j\sum_{d|n/j}d\right)\tag{拆分}\\
&=\frac{n}{2}(f(n)+g(n))\tag{设元}\\
\end{align*}
\]
计算\(f(n)\)
考虑
\[
f(n)=\sum_{j|n}\mu(j)j\sum_{d|n/j}d^2
\]
易证\(\mu(j)j\)和\(\sum\limits_{d|n}d^2\)都是积性函数。
则\(f(n)\)为积性函数\(\mu(j)j\)和\(\sum\limits_{d|n}d^2\)的狄利克雷卷积,可得\(f(n)\)为积性函数。
则\(f(n)\)可用欧拉筛法求出如下:
\[
\begin{align*}
f(p^k)
&=\mu(1)\sum_{d=0}^k(p^d)^2+\mu(p)p\sum_{d=0}^{k-1}(p^d)^2\tag{莫比乌斯函数的性质}\\
&=\sum_{d=0}^kp^{2d}-\sum_{d=0}^{k-1}p^{2d+1}\tag{整理}\\
&=\sum_{d=0}^{2k}(-p)^k\tag{合并}\\
&=\frac{1-(-p)^{2k+1}}{1+p}\tag{等比数列求和公式}\\
&=\frac{1+p^{2k+1}}{1+p}\tag{整理}\\
\end{align*}
\]
再维护一个最小质因数的次数\(p^k\)即可。
计算\(g(n)\)
考虑
\[
g(n)=\sum_{j|n}\mu(j)j\sum_{d|n/j}d
\]
同上,可得\(g(n)\)为积性函数。
则\(g(n)\)可
用欧拉筛法求出如下:
\[
\begin{align*}
g(p^k)
&=\mu(1)\sum_{d=0}^kj^d+\mu(p)p\sum_{d=0}^{k-1}j^d\tag{莫比乌斯函数的性质}\\
&=\sum_{d=0}^kj^d-\sum_{d=1}^{k}j^d\tag{整理}\\
&=1\tag{展开}\\
\end{align*}
\]
我们可以惊讶地发现\(g(n)\)恒等于\(1\)!
总结
则我们可以每次\(O(1)\)地求出
\[
\sum_{k=1}^n\mathbb{lcm}(k,n)=\frac{n}{2}(f(n)+1)
\]
莫比乌斯反演求LCM的另一种做法的更多相关文章
- bzoj 2154 莫比乌斯反演求lcm的和
题目大意: 表格中每一个位置(i,j)填的值是lcm(i,j) , 求n*m的表格值有多大 论文贾志鹏线性筛中过程讲的很好 最后的逆元我利用的是欧拉定理求解的 我这个最后线性扫了一遍,勉强过了,效率不 ...
- (暂时弃坑)(半成品)ACM数论之旅18---反演定理 第二回 Mobius反演(莫比乌斯反演)((づ ̄3 ̄)づ天才第一步,雀。。。。)
莫比乌斯反演也是反演定理的一种 既然我们已经学了二项式反演定理 那莫比乌斯反演定理与二项式反演定理一样,不求甚解,只求会用 莫比乌斯反演长下面这个样子(=・ω・=) d|n,表示n能够整除d,也就是d ...
- BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)
手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/article/details/79506484 题目链接: (Lu ...
- ZOJ 3435 Ideal Puzzle Bobble 莫比乌斯反演
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4119 依然是三维空间内求(1,1,1)~(a,b,c)能看到的整点数,平移一下 ...
- 【JZOJ3623】【SDOI2014】数表(table) 树状数组+离线+莫比乌斯反演
题面 100 \[ Ans=\sum_{i=1}^n\sum_{j=1}^mg(gcd(i,j)) \] 其中, \[ g(d)=\sum_{i|d}i \] 我们注意到\(gcd(i,j)\)最多有 ...
- 树上莫比乌斯反演+分层图并查集——cf990G
/* 树上莫比乌斯反演 求树上 满足 d|gcd(au,av) gcd(au,av)的对数f(d) 如何求: 建立200000层新图,即对于每个数建立一个新图 在加边时,给gcd(au,av)的约数层 ...
- 【容斥原理,莫比乌斯反演】用容斥替代莫比乌斯反演第二种形式解决gcd统计问题
名字虽然很长.但是其实很简单,对于这一类问题基本上就是看你能不能把统计的公式搞出来(这时候需要一个会推公式的队友) 来源于某次cf的一道题,盼望上紫的我让潘学姐帮我代打一道题,她看了看跟我说了题解,用 ...
- 【bzoj2694】Lcm 莫比乌斯反演+线性筛
题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...
- BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常
求 $\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\mu(gcd(i,j))^2$ $\Rightarrow \sum_{d=1}^{n}\mu(d)^2\sum_{i ...
随机推荐
- mac系统提示 interactive intelligence 的恼人问题
处理 interacti intelligence 提示问题记录 二手购买了一台电脑,从最初的小白到现在稍微熟悉mac的使用, 一直困扰我的便是一个提示, 上图 困扰多年, 记录一下解决和尝试过程吧. ...
- typescript 错误记录
经常遇到 typescript 的编译错误,虽然可以绕过去,不过既然采用了,还是解决问题,了解其中的思想比较重要. 一般遇到错误码 error TS2304: Cannot find name ... ...
- P2258 子矩阵——搜索+dp
P2258 子矩阵 二进制枚举套二进制枚举能过多一半的点: 我们只需要优化一下第二个二进制枚举的部分: 首先我们先枚举选哪几行,再预处理我们需要的差值,上下,左右: sum_shang,sum_hen ...
- FWT快速沃尔什变换例题
模板题 传送门 #include<bits/stdc++.h> #define ll long long #define max(a,b) ((a)>(b)?(a):(b)) #de ...
- 利用iterm2,在命令行预览图片,服务器也是可以的
1.首先你本地电脑上要安装iterm2软件,我们这里使用brew安装 这个是一定要装的,因为能在命令行渲染出图片文件全靠它,其实不是服务器渲染出来的,而是iterm2 官方网站:https://www ...
- 第10组 Alpha冲刺(2/6)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 了解了如何根据系统获取的实际情况进行后端任务的调整 网易云音乐推荐算法的分析 ...
- Java8中LocalDate的使用---项目中日期处理
// 获取当前日期 LocalDate now = LocalDate.now(); // 设置日期 LocalDate now2 = LocalDate.of(2099, 2, 28); // 解析 ...
- Mybatis-Generator开发教程
转载:https://blog.csdn.net/qqyb2000/article/details/80031559 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyB ...
- ubuntu上安装python的ldap模块
首先安装 apt-get install libldap2-dev 然后再安装 apt-get install libsasl2-dev 然后就可以继续安装你的python-ldap模块了 pip i ...
- SNAT场景模拟
我的网络配置跟教程中的这个略有不同: web server:192.168.66.101 nat server:192.168.66.188:192.168.6.172 client:192.168. ...