当前位置: 首页 > news >正文

莫比乌斯反演 学习笔记

莫比乌斯反演

前置知识

数论分块

性质:对于前\(\sqrt n\)个数,分别在后面可以找到一个对应的、最大的数,令它们相乘所得的积不超过\(n\),而对于后面的数,因为它们\(> \sqrt n\),所以和它们所乘不超过\(n\)的数一定\(< \sqrt n\)
处理问题时,我们可以依照这种性质,只枚举\(2\sqrt n\)种不同的商,就可以完成题目,将复杂度从\(O(n)\)降低到\(O(\sqrt n)\) (较小数字极端条件下会退化成\(O(n)\),但既然都是较小数字了,也不用在意)
经典实用场景:
Q1: P1403 [AHOI2005] 约数研究
形式化题意:请求出从1到n的所有约数个数之和
(暂停3秒,请大家想一想怎么解答,先不要看解答)
Ans1:
我们可以使用数论分块的性质
对于第一个\(i\)满足\(n/i=d\),我们可以求得最大的\(j=n/d\)满足\(j*d \le n\),所以\(i\)\(j\)的数在\(n\)的范围内拥有\(d\)个倍数
以此类推,我们可以找到每一个数在1到\(n\)范围内有多少个倍数,自然也就找到了约数之和。复杂度\(O(2\sqrt n)\)

Q2:P2261 [CQOI2007] 余数求和
形式化题意:给出正整数\(n, k\),求出\(i\)从1到\(n\)中每个\(k\mod i\)的和
(暂停3秒,请大家想一想怎么解答,先不要看解答)
Ans2:
我们可以将这个式子变成\(n*k- \sum_{i=1}^{n} \lfloor \frac{k}{i} \rfloor *i\)
对于前面的\(n*k\),这很好算
对于后面的式子,运用整除分块的思想,我们可以得到\(2 * \sqrt min(n, k)\)块不同的\(\lfloor \frac{k}{i} \rfloor\)。因此,我们只需要对于每一段\(i \le x \le j\)中的所有x求和即可,即\((i+j) * (j-i+1) / 2\),再乘上前面得到的\(\lfloor \frac{k}{i} \rfloor\),我们就得到了答案
时间复杂度\(2 * \sqrt min(n, k)\)

Q3:P3935 Calculating
形式化题意:求从\(l\)\(r\)的所有约数个数和
和上面的题一模一样,不多赘述,有兴趣的OIER们可以去做一下

Q4: P2424 约数和
形式化题意:求从\(x\)\(y\)中所有约数和的和
和上面的题差不多,不多赘述,由兴趣的OIER们可以去做一下

不再前置的知识

莫比乌斯函数

对于一个莫比乌斯函数,我们有以下定义:

莫比乌斯函数 \(\mu(n)\) 的定义如下:

\[\mu(n) = \begin{cases} 1, & n = 1, \\[4pt] 0, & n \text{ 能被大于 } 1 \text{ 的平方数整除}, \\[4pt] (-1)^k, & n \text{ 是 } k \text{ 个不同素数的乘积}. \end{cases} \]

具体地,设正整数 \(n\) 的素因数分解为:

\[n = \prod_{i=1}^{k} p_i^{e_i}, \]

其中 \(p_i\) 是素数,\(e_i\) 是正整数。则三种情形分别对应:

  • \(\mu(1) = 1\)
  • 若存在某个 \(i\) 使得 \(e_i > 1\)(即 \(n\) 有素因子的指数大于 1),则 \(\mu(n) = 0\)
  • 否则,对所有 \(i\) 都有 \(e_i = 1\)(即 \(n\) 无平方因子),则 \(\mu(n) = (-1)^k\),其中 \(k\) 就是 \(n\) 的不同素因子的个数。

模版:用线性筛求莫比乌斯函数
思路如下:
对于\(1\),由上可知其 \(\mu(1) = 1\)
对于任意一个质数,由上可知其 \(\mu(i) = -1\)
对于剩下的数,我们分为两类:当你目前枚举的质因子\(p\)不能够整除你目前的数\(i\)时,那么由上它的 \(\mu(p*i) = -\mu(i)\);当你目前枚举的质因子\(p\)能够整除你目前的数\(i\)时,那么由上它的 \(\mu(p*i) = 0\)

性质1:
对于\(\sum_{i=1}^{n} \mu(i)\),其总和等于\([n=1]\)("[]"为Iverson括号,括号内条件满足则是1,不满足则是0)
证明1:
作者目前还不会证,会证了再补

狄利克雷卷积

作者也不知道是什么呢~

性质应用1:\([\,i \perp j\,] = [\,\gcd(i,j) = 1\,] = \sum_{d \mid \gcd(i,j)} \mu(d) = \sum_{d} [\,d \mid i\,][\,d \mid j\,] \mu(d).\)
性质证明1:
作者目前还不会证,会证了再补

莫比乌斯反演

主要结论:设\(f(n), g(n)\)是两个数论函数,那么有\(f(n) = \sum_{d \mid n} g(d) \quad \Longleftrightarrow \quad g(n) = \sum_{d \mid n} \mu\!\left(\frac{n}{d}\right) f(d).\)

常见题型:对于gcd问题中,若有\(gcd(i, j) = k, 且a \le i \le b,c \le j \le d\),或其变体(如倍数等),通常可以使用莫比乌斯反演

Q1:[]

http://www.jsqmd.com/news/604403/

相关文章:

  • LS-DYNA R11与R13安装包|专注爆炸冲击与瞬态动力学仿真
  • 如何使用HVM2实现高效并行数据处理:从基础到实战指南
  • AI博主实测|3款封神PPT工具,新手也能10分钟出质感大片 - 品牌测评鉴赏家
  • 永生代码刑责:数字灵魂崩溃致死案开庭
  • React on Rails 国际化(i18n)终极指南:如何快速实现多语言支持
  • 杀死Scrum Master:智能体接管敏捷全流程的灾难
  • 终极指南:如何用Instructor实现舞蹈动作的结构化解析与智能编舞建议
  • 易语言自动寻路算法源代码下载|脚本开发参考范例
  • 基于FPGA的信号处理算法,FFT法相差检测verilog实现 1.硬件平台:altera芯片...
  • STM32H7实战:用CubeMX动态切换主频(72M到16M)的保姆级避坑指南
  • nnUNet实战调优笔记:batch_size与patch_size参数调整策略详解
  • 前端开发连续面了一周,我现在强的可怕!
  • 7个终极技巧:用nbdev实现完美的测试覆盖率分析
  • 计算机考研408真题实战:CRC校验与模2除法的C语言实现
  • AI Agent进阶必学:Harness是什么?与Framework的核心区别+实战拆解
  • 联想y9000p电脑,开机经常出现“请稍等”界面,时间长达半小时——到底什么原因——和系统没有完全更新好有关-完全更新后,再暂停更新试试。-win11家庭中文版
  • 如何用PocketBase打造高性能游戏后端:玩家数据管理与实时对战系统全指南
  • 如何在 SEO 编辑岗位上实现晋升
  • esp32-c3驱动MAX6955AAX并驱动1088AS点阵屏
  • 突破网盘限速壁垒:八大平台通用直链下载解决方案
  • 从COCO到3DPW:聊聊那些‘养活’了姿态估计模型的真实数据集背后的故事
  • 《星尘传说》游戏源码分析:从引擎架构到客户端渲染的技术揭秘
  • PipelineDB社区生态:开源项目的发展历程与未来展望
  • Linuxbrew在Docker中的应用:构建可重复的开发环境
  • 记一次 ALB 概率性 TCP 连接超时排查:从现象到根因(附完整排查流程)
  • 借助AIBIYE的AI改写功能,学习五个核心技巧,快速优化论文内容以达到低重复率标准。
  • AI博主私藏|4款PPT神器,课件/汇报高效出片,新手也能轻松上手 - 品牌测评鉴赏家
  • 终极EdgeGPT版本迁移指南:从v1到v2的无缝适配技巧
  • 智能调控:华硕笔记本散热优化与风扇转速调节全攻略
  • 如何设置cmd的权限为管理员权限方法——采用任务管理器最为方便快捷。