从莫比乌斯反演到前缀和

安利本人的另一个博客:https://czyhe.me/blog/algorithm/partialsum-to-mobiusinversion/partialsum-to-mobiusinversion/

基础知识

前缀和

一维情况

设有序列 ,定义其前缀和为序列 ,满足

前缀和的定义有一个好处,就是可以快速提取 的区间和(前提是存在加法逆元),即

连续情况下为积分,此处为离散积分

二维情况

给定 ,求 ,满足

考虑容斥,有

还有另一种做法:先对第一维求前缀和 ,满足 ,然后对第二维在 的基础上求前缀和,得到 ,即

实际上是先求出了一堆列的前缀和,然后再对行求前缀和就得到了矩形的前缀和

高维情况

给定 ,求 ,满足

先考虑容斥,有:

对于另一种做法,就相当于对于每一维都依次求一遍前缀和,最后的到的结果是和容斥得到的结果相同的

差分

一维情况

差分是前缀和的逆运算,即如果知道 ,现在要还原 ,则有

连续情况下为微分,此处为离散微分

二维情况

实际上把前缀和的式子中的 挪到一旁就是差分的方式了,即:

另一种方法:先把仅有第一维的前缀和 求出来,即

然后 就可以求了,即

高维情况

容斥的做法就较为简单了

如果用另一种方法的话,实际上每一维都从大往小枚举后做差分即可

正整数与唯一分解定理

正整数

的自然数,也就是 这样的,记做

唯一分解定理

为全体素数的集合,其中 表示第 个素数,比如说 之类的

对于任意一个正整数 ,存在唯一一种划分:

整除与狄利克雷卷积

整除

上定义二元关系整除,用符号 来表示,其定义为:

狄利克雷卷积

对于序列 和序列 ,定义其狄利克雷卷积 为:

记做

定义 ,即:

换句话说就是求了一个在整除意义下的前缀和

考虑把它写的更好看一些,不妨把 唯一分解定理展开,即:

于是可以把 看作高维度空间下的一个点,即

,且 ,则 应当满足

于是可以这么来做 ,即(为了好看起见就加上了个 ,实际上不能这么写):

于是就可以使用高维前缀和的做法来计算

如果知道 ,现在要还原 ,实际上也不难操作

一个比较简单的方法就是,从小到大枚举 ,由于 ,所以

另一个比较巧妙的方法就是求出 的逆函数,定义它为

考虑到高维差分的容斥做法:

那么 就是

,现在要求出

考虑到 ,因此 应无大于 的完全平方因子,且如果 能写做 个不同的素数的乘积的话,则

定义 ,也就是单位函数,换而言之

考虑到 表示前缀和, 表示差分,那么 依次作用上这两个函数,就相当于没有进行作用

后话

一个有趣的题:loj #6627. 等比数列三角形

全部评论

相关推荐

10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
牛客410815733号:这是什么电影查看图片
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务