[关闭]
@pinkex 2018-08-16T13:37:10.000000Z 字数 9408 阅读 610

title: 「学习笔记」数论函数
date: 2017-12-31 23:59:56
笔记

mathjax: true

UPD 2017.12.26 重新学了一发莫比乌斯反演,算是会一些套路了?

UPD 2017-12.28 完结,撒花!

其实数论真的很优美毒,不是吗?

前置技能

定义

数论函数。 定义域为正整数的函数。以下默认所有数都是正整数。

积性函数。 对于所有 一定会满足

完全积性函数。 对于 任意

在实际应用中,用到的大多都是 积性函数

积性函数的性质

积性。 为积性函数, 那么 也都是积性函数。

用线性筛求 的积性函数。 ,那么

所以在线性筛的时候,有一种方法就是 计算所有 再相乘

另一种方法是,考虑增加一个最小质因子后的变化。

常见的积性函数及其性质

欧拉函数,积性。 表示 中与 互质的数的个数。

直接根据欧拉函数的定义就可以得到一些有用的式子。比如:(注意利用 ,以及 时少算了一次 )

莫比乌斯函数,积性。 含有平方因子 , 否则 个不同的质因子乘积,

除数函数,积性。 表示 的所有因数的 次幂之和。

特别的, ,表示 的因数个数。

,表示 的所有因数之和。

这个角标在上在下都是等价的!

幂函数,完全积性。 ,表示

特别的,

单位函数,完全积性。 当且仅当 时, ,否则

Dirichlet卷积

定义

两个数论函数 的Dirichlet卷积。

性质

定义。 .

交换律。

结合律。

分配率。

单位元。

为积性函数时, 也为积性函数。

如果有一个积性函数 ,则一定存在 就是 Dirichlet逆,也是积性函数。

已知数论函数 ,则可以枚举倍数,在 的时间内计算出

常见的Dirichlet卷积

一个函数的约数和可以卷上1。

极其重要的,莫比乌斯反演的基础

另一个常用的卷积。 因为 表示与 的最大公约数为 的数的个数,它们的和显然为

莫比乌斯反演

形式一:因数反演

如果两个数论函数 满足 ,也即

那么它们满足 ,也即

考虑证明

已知

两边都卷上 ,可得

已知

两边都卷上 ,可得

本质? 在 Dirichlet卷积意义下互为逆元。

形式二:倍数反演

这就不是Dirichlet卷积了,不过也是对的。

变换技巧

一些基本套路,多推推就熟练了。

1.枚举 取值

2.交换枚举倍数与约数

3.用莫比乌斯函数求和替换

4.改写求和指标

5.得到一个整除分块的形式,处理一个函数的前缀和

最重要的还是保持恒等,利用 两种贡献 的思想。

有一个 积性函数 ,它与恒等函数 的Dirichlet卷积 如何计算?

假设 。那么就有

整数分块技巧。

注意到 只有 种取值。对于固定的 的取值为

对于相同的 ,我们只需要计算 的前缀和 即可。复杂度即是

同时有 时同理。

假设 已经是Dirichlet卷积,那么

再根据常用卷积 ,发现 是连接两个相邻 的桥梁,即

可以由两个常用卷积推出,

常见变换方式:约数与倍数的互换。

对于 三项贡献的这种,可以枚举 将其化为狄利克雷卷积,也可以枚举 化成带下取整的式子;一般来讲前者往往易于预处理,可以应付多组询问,后者则在单次询问中有优秀表现。

最最最容易碰到的莫比乌斯套路。以后就直接作为结论 了:

现在有一个奇怪的函数 ,不妨设 ,那么,

就变成要求 的前缀和了,再套用分块即可。

杜教筛

问题的一般形式

给出一个奇怪的数论函数 (simple一点像 )。接着给出了一个 ,一般有 的范围。需要求 模一个大数的值。

构造

求出 会非常困难,考虑找出另一个函数 ,考虑 的前缀和。

于是,

要求&&时间复杂度&&Trick

需要保证 的前缀和都比较容易计算。

可以直接记忆化搜索,复杂度

可以预处理前 个前缀和,复杂度 。取 最优,复杂度

对于 的前缀和,我们令 即可。

特别重要的!

一个性质:

因为 ,根据上述性质,杜教筛在筛的过程中,会被计算的 只有 个。

这个东西用于时间复杂度计算很有用!所以像分块套杜教筛啊,杜教筛套分块啊,复杂度都是对的!(只要都是不断整除

还有一个 Trick ,我们不是要 HASH 吗,但是那个太慢了。

直接存到 里就好了( 是全局的)

复杂的基本形式

%%%jiry_2

有时候, 本身就是两个函数的积/Dirichlet卷积,通常令 ,可以进一步化简。

推柿子啦啦啦

来看一些有意思的题目。顺便.....

BZOJ3560 DZY Loves Math V

欧拉函数的性质。 考虑统计每一个质因子出现的次数,再相乘即可。注意 要特殊考虑。

空间开不下?注意到一个 最多只会存在一个

51Nod1675 序列变换 给定序列 ,求存在多少对 满足

莫比乌斯反演的第二形式。 定义 的个数,定义 的个数。显然 很容易求,于是用 就好了。

BZOJ3561 DZY Loves Math VI

莫比乌斯反演,暴力。 虽然不是 的形式,也可以用类似的套路,反演得到:

这个东西直接暴力嘛。。

BZOJ4816 [SDOI2017]数字表格 ,其中 是斐波那契数。

莫比乌斯反演,前缀积。 同样也是 的套路,只不过到了指数上面。同时前缀和变成了前缀积,同样也是 暴力预处理。

BZOJ3529 [SDOI2014]数表 。多组询问。

莫比乌斯反演,离线。 哈哈哈,又是 的套路。。于是就是要求:

的前缀和。

然后这个 的限制似乎有些难搞?注意到有多组数据,所以可以离线,按照 排序。修改和求前缀和就交给树状数组了。

复杂度?

BZOJ4407 于神之怒加强版

莫比乌斯反演,积性函数前缀和。 又是 的套路(这句话说了多少遍了)。就是要求:

的前缀和。

然后这个是积性函数的狄利克雷卷积,可以线性筛。往往就需要利用 ,可以直接分情况。或者推公式,展开 (这个方法比较万能):

BZOJ3994 [SDOI2015]约数个数和

莫比乌斯反演, 的性质。 这题需要利用 的性质:

证明:考虑一个质因子 ,假设 中有 个, 中有 个。那么根据约数个数定理,。而如果要使 ,每个质因子同样有 种取法( )。恰好是约数定理的形式。

接下来就是套路变换啦。

BZOJ3309 DZY Loves Math 对于正整数 ,定义 所含质因子的最大幂指数。例如 。给定正整数 ,求

莫比乌斯反演,特殊性质函数的前缀和。 根据 ,我们只需要求 的前缀和即可。

但是,发现这个 不是积性函数,似乎就无法线性筛了。于是就要利用 的特殊性质。

表示为质因数乘积的形式,如果 有贡献,每个质因子的次数不会超过 如果一个质因子 中,我们称选择

引理:对于一个包含 个元素的集合,选择奇数个元素的方案数的等于选择偶数个元素的方案数。

归纳法很容易证明。

我们知道, ,其中 是选择的个数。

接下来分三种情况:(设所有质因子中,最大的次数为

,且 满足 ,假设最大次数 个。考虑 的贡献,此时最大次数的质因子都被选择,剩下的 个数可以任意选择,根据引理,正负全都被抵消了。考虑 的贡献,由于 所有数中选择奇数与偶数个的方案, 时选择奇数与偶数个数的方案都相等 ,同样会正负都抵消。此时

,且有 。如果全部选择, ,对 的贡献为 ;而其他情况下, ,对 的贡献为 。此时

为什么第三种情况套单独考虑? 因为此时 ,不满足引理的条件,需要单独考虑。

同时也可以发现, 第一种情况没必要特殊考虑,同第三种情况。

最后,这个东西也是可以线性筛的。 利用 每个数只会被最小的质因子筛 记录每一个数最小质因子的次数, 记录最小质因子的 次,就可以递推了。

BZOJ3512 DZY Loves Math IV

欧拉函数的性质,莫比乌斯反演,杜教筛。 大爷的姿势

第二步,由于 不一定互质,所以单独提出了 ;第三步,巧妙地运用了 ;第四步,由于 互质,所以可以直接合并;第五步应该及其套路。

时,需要大力杜教筛搞一搞。

嘛..

这个复杂度不会爆炸?

注意到,需要计算的 ,一定满足 (除了第一个),所以要计算的就很少啦。复杂度差不多是

还要HASH一下,同时,根据 的性质,可以先把 中额外的质因子搞出来。

UPD 注意,第四步的推导是错误的,必须要满足 ,这样才能保证互质(因为每个质因子都只有一个,只能存在于 或者 )。所以搞出额外的质因子是必须的。

51Nod1238 最小公倍数之和

只是杜教筛。

两维的嘛..要先拆开来啦..

最主要是搞出 也就是 的前缀和。考虑如何消去难以计算的

我们需要卷上一个新的东西。考虑利用 来消去。考虑卷上 来提出括号中的 ,于是

这个前缀和就比较好求辣。令 表示这个柿子的前缀和,于是(考虑展开后每个 的贡献次数)

注意到不同 的上限只有 个,所以这个前缀和也可以分块! 的前缀和也很容易计算。由于把 划分为 个子问题时也需要 的时间复杂度,所以总的复杂度不变。仍然为

发现很神奇的,

另一种方法。 得到 后,可以改变形式使得更容易筛。改为枚举 的多少倍。

嗯,那么要求的就是 的前缀和,再分块。卷上 。要求 的前缀和。

题外话。 51Nod1227也是同样的方法,只是一开始得到的为 51Nod1237大致方向差不多,只是推的过程简单很多。

如果用方法二,卷起来得到了 ,十分容易计算!

如果直接卷 得到 ,也可以应用方法一,里面套一层分块。

似乎两种方法本质一样,都需要进行一次约数/倍数变换。分块在外面或者里面。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注