@pinkex
2018-08-16T13:37:10.000000Z
字数 9408
阅读 610
title: 「学习笔记」数论函数
date: 2017-12-31 23:59:56
笔记
UPD 2017.12.26 重新学了一发莫比乌斯反演,算是会一些套路了?
UPD 2017-12.28 完结,撒花!
其实数论真的很优美毒,不是吗?
数论函数。 定义域为正整数的函数。以下默认所有数都是正整数。
积性函数。 对于所有 , 。一定会满足 。
完全积性函数。 对于 任意 的 , 。
在实际应用中,用到的大多都是 积性函数。
积性。 若 为积性函数, 那么 也都是积性函数。
用线性筛求 的积性函数。 令 ,那么 。
所以在线性筛的时候,有一种方法就是 计算所有 再相乘 。
另一种方法是,考虑增加一个最小质因子后的变化。
欧拉函数,积性。 表示 中与 互质的数的个数。
直接根据欧拉函数的定义就可以得到一些有用的式子。比如:(注意利用 ,以及 时少算了一次 )
莫比乌斯函数,积性。 当 含有平方因子 , 否则 为 个不同的质因子乘积, 。
除数函数,积性。 表示 的所有因数的 次幂之和。
特别的, ,表示 的因数个数。
,表示 的所有因数之和。
这个角标在上在下都是等价的!
幂函数,完全积性。 ,表示 。
特别的, 。
单位函数,完全积性。 当且仅当 时, ,否则 。
两个数论函数 的Dirichlet卷积。
定义。 .
交换律。
结合律。
分配率。
单位元。
当 为积性函数时, 也为积性函数。
如果有一个积性函数 ,则一定存在 , 就是 的Dirichlet逆,也是积性函数。
已知数论函数 ,则可以枚举倍数,在 的时间内计算出 。
一个函数的约数和可以卷上1。
极其重要的,莫比乌斯反演的基础
另一个常用的卷积。 因为 表示与 的最大公约数为 的数的个数,它们的和显然为 。
如果两个数论函数 满足 ,也即
那么它们满足 ,也即
考虑证明
已知
两边都卷上 ,可得
已知
两边都卷上 ,可得
本质? 与 在 Dirichlet卷积意义下互为逆元。
这就不是Dirichlet卷积了,不过也是对的。
一些基本套路,多推推就熟练了。
1.枚举 取值
2.交换枚举倍数与约数
3.用莫比乌斯函数求和替换
4.改写求和指标
5.得到一个整除分块的形式,处理一个函数的前缀和
最重要的还是保持恒等,利用 两种贡献 的思想。
有一个 积性函数 ,它与恒等函数 的Dirichlet卷积 如何计算?
假设 , 。那么就有
整数分块技巧。 求
注意到 只有 种取值。对于固定的 , 的取值为
对于相同的 ,我们只需要计算 的前缀和 即可。复杂度即是 。
同时有 时同理。
假设 已经是Dirichlet卷积,那么
再根据常用卷积 ,发现 是连接两个相邻 的桥梁,即
可以由两个常用卷积推出,
常见变换方式:约数与倍数的互换。
对于 三项贡献的这种,可以枚举 将其化为狄利克雷卷积,也可以枚举 和 化成带下取整的式子;一般来讲前者往往易于预处理,可以应付多组询问,后者则在单次询问中有优秀表现。
最最最容易碰到的莫比乌斯套路。以后就直接作为结论 了:
现在有一个奇怪的函数 ,不妨设 ,那么,
就变成要求 的前缀和了,再套用分块即可。
给出一个奇怪的数论函数 (simple一点像 )。接着给出了一个 ,一般有 的范围。需要求 模一个大数的值。
求出 会非常困难,考虑找出另一个函数 ,考虑 的前缀和。
于是,
需要保证 的前缀和都比较容易计算。
可以直接记忆化搜索,复杂度 。
可以预处理前 个前缀和,复杂度 。取 最优,复杂度 。
对于 的前缀和,我们令 即可。
特别重要的!
一个性质:
因为 ,根据上述性质,杜教筛在筛的过程中,会被计算的 只有 个。
这个东西用于时间复杂度计算很有用!所以像分块套杜教筛啊,杜教筛套分块啊,复杂度都是对的!(只要都是不断整除 )
还有一个 Trick ,我们不是要 HASH 吗,但是那个太慢了。
直接存到 里就好了( 是全局的)
有时候, 本身就是两个函数的积/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大致方向差不多,只是推的过程简单很多。
如果用方法二,卷起来得到了 ,十分容易计算!
如果直接卷 得到 ,也可以应用方法一,里面套一层分块。
似乎两种方法本质一样,都需要进行一次约数/倍数变换。分块在外面或者里面。