莫比乌斯反演
“数论所生,繁华之地。” —— 一径入繁华
在未特殊指出的前提下,字母均代表正整数。
持续补充中,如果有任何问题或者想要交流,欢迎联系我。
Upd on 2024/9/20:完善了一些内容。
数论分块
引理 1
证明
显然有
( )。
。证毕。
引理 2
取遍 时, 只有 种取值。(应用时,可以认为是 ) 证明
- 当
时,由于 只有 种选择,所以只有 种取值; - 当
时, ,也只有 种取值。
证毕。
数论分块
引理 3
对于正整数
,设 。则对于 , 。 证明
函数
显然是单调递减的。令 。 注意到
(由下取整函数的性质),所以 。 并且,
,所以 。 由于
,而在区间 的两端,函数 都有 。由于 的不严格递减性质,引理成立。
证毕。
结合引理 2,我们知道,函数
下面我们结合几道例题来对整除分块的应用进行说明。
UVA11526 H(n)
给定
的值。
引理 3 的直接应用,这里给出核心代码。
int ans=0, l=1, r; while (l<=n) { r=n/(n/l); ans+=(r-l+1)*(n/l); l=r+1; }
理解了引理 3 后,这段代码是不难理解的。
P2261 [CQOI2007] 余数求和
给定
不难发现
P3935 Calculating
设
对于正整数
(证明:仅有形如
然后利用一点前缀和与差分的知识,我们不难得到区间
那么我们枚举这个
时间复杂度
P2260 [清华集训2012] 模积和
求
对
不妨设
首先可以把不相关的部分提出来。对于
然后拆开。
然后就是
对于减掉的式子,我们有
可能要用到的公式:
注意,
积性函数
对于算术函数
若
对于任意积性函数
证明 任取
,有 ,得到 。
描述 | 公式 | 积性 | |
---|---|---|---|
元函数 | 完全 | ||
常值 |
- | 完全 | |
恒等函数 | 完全 | ||
Mobius 函数 | 积性 | ||
Euler 函数 | 积性 | ||
因数个数函数 | 积性 | ||
因数和函数 | 积性 |
如果你不理解记号的含义,可以先向下阅读。
Dirichlet 卷积
对于数论函数
一些性质:
交换律
。 证明 由定义立刻得到。
常用数论函数简介
元函数
定义
元函数是 Dirichlet 卷积意义下的单位元。也就是说,对于任意数论函数
Mobius 函数
定义
不妨记正整数
的唯一分解式为 。则
值得一提的是,Mobius 函数在数论中的容斥性质。事实上,这也是它定义的根本目的。
考虑一个问题:
问题
给定正整数
,求出与不大于它且它互素的数个数的表达式(即 )
不妨假设
综上,我们可以得到
重要性质
这个性质非常重要,请牢记。
接下来是几个同样重要的性质。
重要性质
这个性质非常重要,请牢记。
证明 1 利用后面提到的 Mobius 反演立即得证。
证明 2
时显然成立。考虑 ( 两两不同)。 那么左边等于
即为
证毕。
推论
这个推论非常重要,请牢记。
证明
Euler 函数
定义
对于正整数
,定义 表示不大于 且与 互素的正整数个数。即
你可能对
引理 1
证明 本质上就是引理 2。具体地说:将
改写为 ,然后注意到那个负号实际上就是 Mobius 函数的负号。
但是你还需要知道:
引理 2
证明 见
函数部分。
引理 3
即,
。 证明 1 由引理 3 和 Mobius 反演立刻可得。
证明 2
考虑分母为,分子为 的 个分数 。 将这
个分数全部变成既约的(即,令分子和分母互素)。注意到所有的分母都是 的因数,而且分母为 的分数的数量就是 (注意分子和分母互素)。 所以我们得到了
证毕。
引理 4
证明
左边就是
右边就是
即
对于左边,是对
的素约数或者 的素约数求的,可以理解为 。分子对 的素约数和 的素约数求的,可以理解为 。分母是对 的素约数求的,可以理解为 。 然后根据容斥原理有
。证毕。
Mobius 反演
定理(Mobius 反演)
对于积性函数, 证明
由定义有
当且仅当
即 时, 有非 值 。 于是
。证毕。
- 形式 1
- 形式 2
常见应用
我们给出几个常见的形式。以下默认
- 形式 1
利用数论分块,时间复杂度
- 形式 2
- 形式 3
令
预处理后时间复杂度
行列式 与 数论函数
本部分内容较为进阶,建议在对莫反和行列式的性质比较熟悉后再阅读。
- 形式 1
对于
不妨手玩一个例子。
我们断言:消元后,有
我们尝试详细证明结论。
我们采取如下的消元策略:依次考虑第
设消完元后的部分为
假设对于前
当
否则
而对于第
- 形式 2
对于
继续手玩。当
当
利用 OEIS 找出规律:定义 Jordan totient 函数
朴素地枚举倍数是
PGCD - Primes in GCD Table
求
做到这一步已经是
设
设
一方面可以枚举所有素数的倍数来预处理。这样是
下面我们进行分讨。以下设
或
显然有
我们有
综上
时间复杂度
GCDMAT - GCD OF MATRIX
求
直接拆成四个询问,套用形式 2 即可。
P3327 [SDOI2015] 约数个数和
记
我们知道
我们有
则有
时间复杂度
P2714 四元组统计
给定正整数数列
不妨设
设满足
注意这里利用了莫反的形式 2。
时间复杂度
P5221 Product
求
对
[RC-02] GCD
求
其中
使用杜教筛维护,时间复杂度
LOJ #6491「XXOI 2018」简单的最大公约数
简单反演一下。
P3768 简单的数学题
求
使用杜教筛维护。时间复杂度
P3172 [CQOI2015] 选数
求
不妨先计算出
的答案再减去 的答案。以下令 。
对于
的计算同理。时间复杂度 。
以上是错误的解法。正确的解法:令
可以用杜教筛维护。
P4318 完全平方数
求出第
我们有结论:
中, 的数(即不含素平方因子的数)的数量约为 。(巴塞尔问题)
于是二分是显然的。于是我们需要求
其中
解法 1
考虑 Mobius 函数。
删去
于是就是
直接计算答案,时间复杂度
运用二次方数论分块(August_Light)可以将时间复杂度优化到
解法 2
注意到
考虑杜教筛。
令
引理
证明
原式即为
的最大平方因子是 时显然成立。以下设 的最大平方因子非 。
当
取到 的最大平方因子的时候, 。 当
取到 的非最大平方因子的时候, ,从而这一项贡献为 。 当
取到非平方数的时候, 。 证毕。
于是
但是你会发现
然后直接做就可以了。单次时间复杂度应该是低于
CF1139D Steps to One
一个初始为空的数列,每次随机选一个
解法 1
长度为
注意,这是长度不大于
不妨记为
但是你发现这样求不了一点。我们考虑从期望的性质着手。
可以
解法 2
不妨设
不难想到
设
于是,我们的式子变成了
将
于是就可以直接递推。答案是
最后考虑如何计算
于是就做完了。
P7504 「HMOI R1」可爱的德丽莎
给定
对
警示后人:不要像我一样看错题,导致三天都没想出来怎么写。
首先定义
注意到原式即为
下面的推导中,记
考虑到
注意到
于是令
同理,
然后就可以完成此题了。
P5218 无聊的水题 II
从
显然就是选取若干个数,使得其
假设选出了
最后很容易能够反演出来是
然后简单处理一下(注意到只需要处理
但是这个做法是没有前途的。
考虑容斥。设
简单反演一下可以得到
然后显然有
利用杜教筛维护即可,时间复杂度
P4449 于神之怒加强版
求
设
不难想到
不妨设
不妨设
以下设
或
显然有
P6825 「EZEC-4」求和
求
不妨令
错误的解法
let
后一部分是
可以证明是
P7575 「PMOI-3」公约数
题目中给出的形式不方便反演。不妨先考虑一个计数 dp。
设
初值:
转移:
直接开始莫反。
注意到这是一个 Dirichlet 前/后缀和的形式,我们在 dp 时维护它即可。时间复杂度
P1829 [国家集训队] Crash的数字表格 / JZPTAB
求
记
let
考虑
当
当
当
否则
P6156 简单题
求
其中
let
不难发现
考虑令
对于
然后就做完了。
GCDMAT2 - GCD OF MATRIX (hard)
求
数据组数
P7486 「Stoi2031」彩虹
求
化式子。我们只需要考虑
不妨记
我们有
记为
而且我们有
则
不妨令
我们得到
再令
讨论一下乘法的数论分块。
设极长的区间为
然后我们需要预处理出
回顾一下
实际上只需要预处理
对于
于是我们在
现在是 16:46,我看我什么时候写完。
Update:2.7 13:15 AC 了此题。
注意什么时候对
P3704 [SDOI2017] 数字表格
求
其中
简单反演一下。
时间复杂度
P3312 [SDOI2014] 数表
TODO。
P6271 [湖北省队互测2014] 一个人的数论
好题。
此处的
记
给定
即为
显然
注意到当且仅当
系数
总时间复杂度
P6810 「MCOI-02」Convex Hull 凸包
求
我们可以简单反演一下
然后你会发现中间有个卷积是可以线性调和地算的。然后你还会发现后面也是一个线性调和的枚举。
所以总复杂度
[AGC038C] LCMs / P3911 最小公倍数之和
给定数列
不妨记
时间复杂度
P4240 毒瘤之神的考验
求
对
我们有
(证明见
代入得到
至此我们已经做到了单次询问
不妨设
我们可以在
观察到
于是最终的答案可以表示为
如果预处理出全部的
本题中
预处理 ,体现了 调和之美;设阈值进行平衡,体现了 平衡之美。
[CmdOI2019] 简单的数论题
求
对
套路地进行反演。
令
我们不难套路地
那么,设
如果预处理出所有的
然后对
[MarsOJ 24JAN A] phi
求
记
不妨记
记
不妨记
答案即为
时间复杂度
P4619 [SDOI2018] 旧试题
求
我们有结论
代入有
注意到
记
考虑什么样的三元组
;
这个三元组对答案贡献为
现在压力给到建图。朴素的建图是
边数不超过
P6860 象棋与马
题意省略。
P3598 Koishi Loves Number Theory
Starrykiller loves number theory
题意省略。
很厉害的题。
转化一下题意,由于题目保证了
我们有如下引理。
引理
P7360 「JZOI-1」红包
推式子。
其中
不难发现可以整除分块求解,时间复杂度
本题
P8570 [JRKSJ R6] 牵连的世界
求
对
推式子。
引理
证明
引理
证明 见上。(P4240)
不妨记
令
注意到,首先我们只需要枚举所有
换个思路。(TODO)
P5518 [MtOI2019] 幽灵乐团 / 莫比乌斯反演基础练习题
推式子毕业题。
给定正整数
其中
对素数
首先不难发现本质上就是求
和
然后答案就是
考虑
先求
考虑
即,求出
和
然后答案就是
不妨记
以下默认
考虑
考虑
考虑优化,不妨令
P1587 [NOI2016] 循环之美
声明:我们交换题面中的
。
不难发现答案为
先第一次莫反。
记
注意到
如果我们能够维护出
注意到
(简单容斥)。于是
综上,我们在
P4464 [国家集训队] JZPKIL
爆推式子。
不妨记
不妨设
记
那么我们可以将积性函数拆成素数幂乘积的形式。
具体地说,
至于
还需要进行素因数分解,总时间复杂度
P5176 公约数
在本题中,记
给定
对
引理 1
证明
对于任意素数
,设 的指数为 ,不失一般性,设 。 代入可以得到
,显然成立。 证毕。
代入得到
记
考虑
不难发现右边就是
启示:遇到
P10182 一径入繁华
新鲜出炉的数论题。
“数论所生,繁华之地。”
定义
求出
参考文献
本文作者:Starrykiller
本文链接:https://www.cnblogs.com/Starrykiller/p/18016231/mobius-inversion
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步