莫比乌斯反演μ函数模板

【算法笔记】莫比乌斯反演(包含定理,两种形式的证明及入门经典模板) 一、莫比乌斯反演 学习笔记,我是看这个博客入门的,讲的非常好,传送门,关键是给出了非常多的定理,好多是数论书上的权威概念。 我自己证明的照片在文末,有点乱 首先,莫比乌斯反演是什么? 第一种形式: F(n)=∑d∣nf(d)=>f(n)=∑d∣nμ(d)F(nd)F(n)=\sum_{d|n}f(d)=>f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})F(n)=d∣n∑​f(d)=>f(n)=d∣n∑​μ(d)F(dn​) 第二种形式: F(n)=∑n∣df(d)=& 阅读详情

 

参考学习:

https://blog.youkuaiyun.com/HowardEmily/article/details/78199037

https://blog.youkuaiyun.com/codeswarrior/article/details/81541972

 

 

O( n )筛法函数:

void init(){
    memset(prime,0,sizeof(prime));
    memset(mu,0,sizeof(mu));
    memset(vis,0,sizeof(vis));
    mu[1] = 1;
    cnt = 0;
    for(int i = 2; i < maxn; i++){
        if(!vis[i]){
            prime[cnt++] = i;
            mu[i] = -1;
        }
        for(int j = 0; j < cnt && i * prime[j] < maxn; j++){
            vis[i*prime[j]] = 1;
            if(i % prime[j]) mu[i*prime[j]] = -mu[i];
            else{
                mu[i*prime[j]] = 0;
                break;
            }
        }
    }
}

 

HDU 1695 GCD 反演经典入门:

http://acm.hdu.edu.cn/showproblem.php?pid=1695

 

Ac code:

 1 #include <bits/stdc++.h>
 2 #define INF 0x3f3f3f3f
 3 #define LL long long
 4 using namespace std;
 5 typedef long long ll;
 6 const int maxn = 1e5+7;
 7 bool vis[maxn];
 8 int prime[maxn],mu[maxn];
 9 int cnt;
10 void init(){
11     memset(prime,0,sizeof(prime));
12     memset(mu,0,sizeof(mu));
13     memset(vis,0,sizeof(vis));
14     mu[1] = 1;
15     cnt = 0;
16     for(int i = 2; i < maxn; i++){
17         if(!vis[i]){
18             prime[cnt++] = i;
19             mu[i] = -1;
20         }
21         for(int j = 0; j < cnt && i * prime[j] < maxn; j++){
22             vis[i*prime[j]] = 1;
23             if(i % prime[j]) mu[i*prime[j]] = -mu[i];
24             else{
25                 mu[i*prime[j]] = 0;
26                 break;
27             }
28         }
29     }
30 }
31 int main(){
32     init();
33     int T_case;
34     int a, b, c, d, k;
35     LL ans1 = 0, ans2 = 0;
36     scanf("%d", &T_case);
37     for(int Case = 1; Case <= T_case; Case++){
38         ans1 = 0; ans2 = 0;
39         printf("Case %d: ", Case);
40         scanf("%d %d %d %d %d", &a, &b, &c, &d, &k);
41         if(b < k || d < k || k == 0){
42             puts("0");
43             continue;
44         }
45         b = b/k;
46         d = d/k;
47         int len = min(b, d);
48         for(int i = 1; i <= len; i++){
49             ans1 += (LL)mu[i]*(b/i)*(d/i);
50         }
51         for(int i = 1; i <= len; i++){
52             ans2 += (LL)mu[i]*(len/i)*(len/i);
53         }
54         printf("%lld\n", ans1-ans2/2);
55     }
56     return 0;
57 }
View Code

 

[莫比乌斯反演]莫比乌斯函数 μn1n1−1knp1p2p3pk0p2∣nμn⎩⎨⎧​1−1k0​n1np1​p2​p3​pk​p2∣n​其中所有的ppp都是关于nnn的质因数。 阅读详情

相关推荐

莫比乌斯反演常用套路整理

(注意,以下除法若未说明自动下取整) 首先放一个莫比乌斯反演常用的两条公式以及证明:莫比乌斯反演定理证明(两种形式) 其中主要用到的是这一条(为了强化记忆我专门手打了一遍 G(d)=∑d|nF(n)==&gt;F(n)=∑n|dμ(d/n)∗G(d)G(d)=∑d|nF(n)==&gt;F(n)=∑n|dμ(d/n)∗G(d)G(d)=\sum_{d|n}F(n)==>F(n)=\sum_{...

santongding 1320

【专题】数论

推荐:数论知识总结——史诗大作(这是一个flag) 【欧几里得算法】辗转相除法 1.被整除数的性质:若c|a,c|b,则c|(ma+nb) 整除数的性质:若a|c,b|c,gcd(a,b)=1,则ab|c。(否则lcm(a,b)|c) 2.gcd的定义 若c|a,c|b,则c为a和b的公因数。当c能被a和b的所有公因数整除时,c是a和b的最大公因数,记为gcd(a,b)。 若c|gcd...

weixin_33923762的博客 2387

如何在VSCode中无缝集成Azure OpenAI GPT-5-codex?保姆级配置教程

本文详细介绍了在VSCode中无缝集成Azure OpenAI GPT-5-codex的完整配置教程,涵盖环境准备、Azure资源创建、本地配置、VSCode插件安装及高级定制。通过Codex CLI和config.toml文件配置,开发者可快速实现AI辅助编程,大幅提升代码生成、错误诊断和文档编写效率。

weixin_29268637的博客 558

浅谈学习莫比乌斯反演

前言 如果学习莫比乌斯反演的某一个瞬间不知道自己是谁自己在干什么眼前的公式是什么, 不要慌张, 它本来,就不知道在干什么 本人查阅了一些大佬的博客, 再次鸣谢大佬 本人水平有限,无法深入浅出,各位量力而行 莫比乌斯反演内容 需知条件: ∗*∗在此为狄利克雷卷积 形式: t=g∗ft=g*ft=g∗f t(n)=∑d∣nf(d)∗g(nd)t(n)=\sum_{d|n}f(d)*g(\frac{n}...

beautiful_CXW的博客 632

《21天学通C++》阶段性成果测试题——hstring(手写string类)

总体考察了类的使用,缓冲区考察了指针和数组的使用、增删改查、考察编码思维、考察了类的重载。1.初始化子字符串的起始位置为-1,表示未找到,若buffer或findHstring为空,则返回-1。右边的字符串不为空,则分别获取母串和子串的长度(用循环),然后创建一个固定大小的数组。3.然后循环遍历寻找子串在母串中的起始位置,循环时可以通过两个长度相减,避免循环越界。2.如都不为空,则分别获取双方的字符串长度(用循环),然后。右边的字符串为空,则输出原来的字符串。是否为空,有一方为空则返回另一方。

立志成为炼丹师? 1265

深入浅出一文搞懂Raft协议

前言 在分布式的世界里,要说最核心最复杂的功能,一致性的实现无出其右,之前的paxos算法堪称经典,被认为是同类算法中效果最好的,基本上成为分布式一致性的代名词,但是paxos算法也是出了名的难理解,而且相当不好实现。本人也花了很多时间、看了很多材料也没有真正理解。所以基于paxos的思想进行的一致性算法的简化和实现就成为了现实的需求,在此背景下,本文的主角Raft就出现了。 Raft算法的头号目标就是容易理解(UnderStandable),这从论文中就可以看出来。当然,R...

microGP的专栏 6486

莫比乌斯反演推导即μ函数的证明

题目描述 求长度为\(n\)且仅包含小写英文字母且循环节长度恰为\(n\)的字符串的个数。 意思是求一个长度为\(n\)的字符串的个数,它的任意一个子串重复若干次都不能和原串相等 设\(f(n)\)为长度为\(n\)的字符串个数,设\(g(n)\)为题目所求答案的个数 显然 \[f(n)=26^n,f(n)=\sum_{d\mid n}g(d)\] 第一个很显然 第二个意思是 任意一个长度为\(d...

weixin_30246221的博客 280

基于STM32的智能台灯PWM调光与人体感应融合设计

本文详细介绍了基于STM32单片机的智能台灯设计方案,重点讲解了PWM调光技术与人体感应模块的融合实现。通过STM32的高级定时器产生精准PWM信号控制LED亮度,结合红外传感器实现人来灯亮、人走灯灭的智能体验,同时集成光敏传感实现环境自适应调光,打造高效节能的智能照明解决方案。

threejs5artist的博客 827

各种友(e)善(xin)数论总集,从入门到绝望4---狄利克雷卷积和莫比乌斯反演

文章目录参考文献定义狄利克雷卷积以及各种性质数论函数形式性质积性函数性质1性质2一些完全积性函数逆函数性质1莫比乌斯反演因子包含狄利克雷卷积方式证明因子包含公式(适合较理性的同学证明)杨辉三角形与容斥原理μ函数的定义容斥原理证明μ函数的性质倍数包含数论分块练习123456789小结&总结证明 参考文献 咕咕日报:https://www.luogu.org/blog/lx-2003/mobi...

蒟蒻QMQ 413

9、储备池学习:从学习到学习的新范式

本文探讨了基于学习到学习(L2L)框架的储备池计算新范式,提出通过在外循环中优化储备池的超参数(如递归连接权重、输入权重和读出初始化),以提升其在多种任务中的内循环学习性能。研究展示了两种主要实验设置:一是优化储备池用于回归二阶Volterra滤波器任务,显著优于随机基线;二是实现无需调整读出权重、仅依赖内部动态学习非线性函数的能力,表明储备池可快速构建目标函数的内部模型并安装任务先验知识。结合流程图与表格,文章系统呈现了L2L的训练流程、技术细节及实验结果,并讨论了性能提升、泛化能力等开放问题,指出了未来

ujm56789012的博客 506

【stm32+K210项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(完整工程资料源码)

本系统采用SG90舵机Maix Bit摄像头STM32C8T6主控板以及LX_TRIG_MP3_V6.0语音播报模块,构建了一套高效的智能垃圾分类系统,综合运用了图像识别、语音播报及精准控制技术。SG90舵机负责控制垃圾桶的开盖操作。该舵机通过接收PWM信号来实现转动,内部有一个基准电路产生周期为20ms的PWM信号,通过外部脉冲信号的控制(高电平时间在0.5ms至2.5ms之间),使得舵机的输出轴转动到指定位置。舵机内的位置反馈电位计。

嵌入式技术开发 5103

莫比乌斯反演入门

这个算是竞赛中用到的组合数学里最多的知识点,也是比较难理解的,在被将近一个星期的折磨后总算是理解了一些。 其实莫比乌斯反演就只有两个重要的公式,而且用到的最多的也只有一个(其实都差不多),但是需要一些预备知识。 莫比乌斯函数,质数线性筛,整除分块,积性函数以及一些其他的数论知识,下面会将其中一部分重要的算法, 目录 1.莫比乌斯函数 2.莫比乌斯函数的线性筛 3.整除分块 4....

mumei的博客 1229

环境配置与基础教程:2026大厂标准:使用 DVC (Data Version Control) 实现 YOLO 数据集版本控制全链路管理

本文介绍了使用DVC 3.0对YOLO数据集进行全链路版本控制的方法。主要内容包括: DVC 3.0的核心增强:内容块级缓存去重、并行云传输、AI智能体元数据跟踪等新特性,可显著提升YOLO数据集管理效率。 环境配置:详细说明DVC 3.0的安装步骤、项目初始化方法以及远程存储配置方案(支持S3、GCS、Azure等多种存储后端)。 目录结构规范:提供符合大厂MLOps标准的项目目录结构设计。 实战操作: 原始数据版本化 多格式标注数据版本控制 版本切换方法 优势说明:DVC通过哈希指针机制管理大型数据集,

ZXSXJ的博客 148

莫比乌斯函数、莫比乌斯反演

莫比乌斯函数 在学习这个函数之前,最好先了解欧拉函数 莫比乌斯函数:数论函数,由德国数学家和天文学家莫比乌斯(Möbius ,1790–1868)提出。梅滕斯(Mertens)首先使用μ(n)作为莫比乌斯函数的记号。而据说,高斯(Gauss)比莫比乌斯早三十年就曾考虑过这个函数。莫比乌斯函数在数论中有着广泛应用。 莫比乌斯函数完整定义的通俗表达: 1)莫比乌斯函数μ(n)的定义域是N 2)μ(1)=1 3)当n存在平方因子时,μ(n)=0 4)当n是素数或奇数个不同素数之积时,μ(n)= -1 5)当n

blaze003003的博客 9233

操作系统|知识梳理|复习(下)

操作系统复习

知识库搭建ing 1786

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【数论】莫比乌斯反演

莫比乌斯反演是数论重要工具,通过莫比乌斯函数实现求和变换,常用于GCD计数等问题,结合线性筛与数论分块可高效求解。

zhangmohan123321的博客 1226

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【数论】莫比乌斯函数及其反演

这篇文章主要介绍了数论中的莫比乌斯函数及其反演。文章先介绍了完全积性函数和积性函数,随后列举了一些常见的数论函数,包括单位函数、常数函数、恒等函数、莫比乌斯函数和欧拉函数,强调了它们在数论中的重要性。阐述了狄利克雷卷积的定义,并推导了相关公式,随后对莫比乌斯函数进行了详细的解析。莫比乌斯函数的定义给出了其计算方式,指出了质因子的处理和相关特性,并给出了莫比乌斯反演的公式,强调了这个公式在该领域的重要性。接下来的部分提供了莫比乌斯函数的求解算法及相关例题,采用了欧拉线性筛的方式,时间复杂度为 (O(n))。

yigan_Eins的博客 3113

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mobius inversion 莫比乌斯反演 例题总结

莫比乌斯反演,实际上主要利用莫比乌斯函数的性质:ϵ = μ ∗ 1。一般会结合 整除分块、线性筛 等算法进行考察。下面总结了几道 Luogu 上较为典型的题目。

winsunboy的博客 1622

莫比乌斯反演总结

一.莫比乌斯反演基础 1.莫比乌斯函数 定义: μ(x):μ(x):\mu(x): 若x为1,则μ(x)=1若x为1,则μ(x)=1若x为1,则\mu(x)=1; 若x=p1p2p3p4...pk,即每一项的指数都不超过1,那么μ(x)=(−1)k若x=p1p2p3p4...pk,即每一项的指数都不超过1,那么μ(x)=(−1)k若x=p_1p_2p_3p_4...p_k,即每一项的指数...

G20202502的博客 2259

莫比乌斯函数和莫比乌斯反演

关于莫比乌斯函数和莫比乌斯反演的介绍

DY-hzx的博客 2277

莫比乌斯反演

莫比乌斯反演是数论中的一个重要内容,可以用于解决很多组合数学的问题。具体来说,莫比乌斯反演公式提供了一种方法,可以通过已知数列的生成函数来求解另一数列的生成函数。37莫比乌斯反演是数论中的一个重要工具,通过莫比乌斯函数和反演公式,可以有效地解决许多与数论和组合数学相关的问题。理解和应用莫比乌斯反演公式,可以帮助我们更高效地处理复杂的数学问题。37。

m0_63331248的博客 996

莫比乌斯反演学习笔记

since 20250809

m0_73430577的博客 1523

快速莫比乌斯变换(FMT)与莫比乌斯反演 例题:树上lcm

本文介绍了快速莫比乌斯变换及其在数论中的应用。首先给出zeta变换和莫比乌斯反演的数学公式,并提供了二进制集合下的代码实现。然后讨论了数论中的莫比乌斯反演,包括莫比乌斯函数的定义和基于欧拉筛的实现。最后通过一道例题"树上lcm"展示了实际应用,解题思路是通过莫比乌斯反演将问题转化为统计连通块内路径数。代码实现包括预处理莫比乌斯函数、DFS遍历树结构等关键步骤。

CUC-MenG的博客 1256
上一篇: HDU 6370 Werewolf 【并查集】
下一篇: STL - next_permutation 全排列函数
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值