从莫比乌斯反演到前缀和
安利本人的另一个博客:https://czyhe.me/blog/algorithm/partialsum-to-mobiusinversion/partialsum-to-mobiusinversion/
基础知识
前缀和
一维情况
设有序列 ,定义其前缀和为序列 ,满足
前缀和的定义有一个好处,就是可以快速提取 的区间和(前提是存在加法逆元),即
连续情况下为积分,此处为离散积分
二维情况
给定 ,求 ,满足
考虑容斥,有
还有另一种做法:先对第一维求前缀和 ,满足 ,然后对第二维在 的基础上求前缀和,得到 ,即
实际上是先求出了一堆列的前缀和,然后再对行求前缀和就得到了矩形的前缀和
高维情况
给定 ,求 ,满足
先考虑容斥,有:
对于另一种做法,就相当于对于每一维都依次求一遍前缀和,最后的到的结果是和容斥得到的结果相同的
差分
一维情况
差分是前缀和的逆运算,即如果知道 ,现在要还原 ,则有
连续情况下为微分,此处为离散微分
二维情况
实际上把前缀和的式子中的 挪到一旁就是差分的方式了,即:
另一种方法:先把仅有第一维的前缀和 求出来,即
然后 就可以求了,即
高维情况
容斥的做法就较为简单了
如果用另一种方法的话,实际上每一维都从大往小枚举后做差分即可
正整数与唯一分解定理
正整数
非 的自然数,也就是 这样的,记做
唯一分解定理
设 为全体素数的集合,其中 表示第 个素数,比如说 之类的
对于任意一个正整数 ,存在唯一一种划分:
整除与狄利克雷卷积
整除
在 上定义二元关系整除,用符号 来表示,其定义为:
狄利克雷卷积
对于序列 和序列 ,定义其狄利克雷卷积 为:
记做
定义 ,即:
换句话说就是求了一个在整除意义下的前缀和
考虑把它写的更好看一些,不妨把 唯一分解定理展开,即:
于是可以把 看作高维度空间下的一个点,即
设 ,且 ,则 应当满足
于是可以这么来做 ,即(为了好看起见就加上了个 ,实际上不能这么写):
于是就可以使用高维前缀和的做法来计算 了
如果知道 ,现在要还原 ,实际上也不难操作
一个比较简单的方法就是,从小到大枚举 ,由于 ,所以
另一个比较巧妙的方法就是求出 的逆函数,定义它为
考虑到高维差分的容斥做法:
那么 就是
设 ,现在要求出
考虑到 ,因此 应无大于 的完全平方因子,且如果 能写做 个不同的素数的乘积的话,则
定义 ,也就是单位函数,换而言之
考虑到 表示前缀和, 表示差分,那么 依次作用上这两个函数,就相当于没有进行作用
即
后话
一个有趣的题:loj #6627. 等比数列三角形