「从零开始的莫比乌斯反演」0. 序
如题,这是一篇序。
最近两天在学莫比乌斯反演,搜各种博客,搞得很头疼,感觉要学的东西非常多,而且乱。所以写一篇教程,顺便巩固一下知识。
莫比乌斯反演是什么
这个名字咋一看其实挺吓人的,毕竟突然就出现了“莫比乌斯”和“反演”这样两个没听说过而且很高大上的词。莫比乌斯反演是干什么的?举个例子:
例
给定\(n,m\),求:
\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} [\operatorname{gcd}(i,j)=1]
\]
\([\operatorname{gcd}(i,j) = 1]\)的意思是如果\(i,j\)满足\(\operatorname{gcd}(i,j) = 1\),就为\(1\),否则为\(0\)。
对于全部测试点,\(1 \leq n, m \leq 5 \times 10^4\)
这道题显然是不能暴力枚举的。反演可以把它的复杂度降到\(O(n + T\sqrt{n})\),其中\(T\)是询问的次数。
莫比乌斯反演能用来解决一些这种数论函数求和的问题。
现在,莫比乌斯反演是不是不那么神秘了?
学习路线
学莫比乌斯反演之前是有一系列的知识要学的。我个人建议是这样的:
线性筛(或其他筛法,至少会一种。建议复杂度不要高于\(O(n)\))&数论分块 -> 莫比乌斯函数 -> 狄利克雷卷积 -> 莫比乌斯反演
因为学习狄利克雷卷积的时候,了解一些莫比乌斯函数的相关性质会方便很多,所以就把莫比乌斯函数放到前面了。
这些奇怪的名词,看起来很高大上,不过一步一步扎实地学习,你会发现它们并没有那么难。比如狄利克雷卷积。
PS
虽然打算写一系列从零开始的教程,不过我不打算具体讲线性筛。但是线性筛的模版还是会给出的。
虽然说,本系列是想写面向Beginner的教程,但是莫比乌斯反演在数论中并不是很基础的内容,你仍然需要有一些数论的基础知识。