莫比乌斯反演
积性函数
数论中的卷积默认是狄利克雷卷积,写作$*$,星号夹在两个函数中间.常见的积性函数有:
单位函数 ,完全积性
恒等函数 ,完全积性
常数函数 ,完全积性
欧拉函数 也就是小于等于n和n互质的数的个数
除数函数 ,其中 $\sigma_0$ 经常记作 $d$ 或 $\tau$ ,经常记作$\sigma$ .
莫比乌斯函数 ,是加性函数
(人话:1是1,有完全平方数就是0,否则就是按照积性函数-1之间相乘.)
$\omega(n)$ 表示n的本质不同质因子个数
(加性函数,指满足 $f(ab)=f(a)+f(b)$ 的函数)
积性函数推广:假如fg是积性函数,以下也都是积性函数:
狄利克雷卷积
对于两个数论函数fg,定义其结果h
即为
性质:交换律结合律分配律.有一个特殊点的:
和 是充要条件,其中 $h(1)\neq0$ .
高维前缀和:铺垫一下,优化有用.高位前缀和就是状压dp,用于快速求解集合及其子集和.
可以对这道题中的模型进行抽象化,即:对于任意数论函数f,积性函数g,在 $O(n\log\log n)$ 的时间复杂度内求出狄利克雷卷积h.
将每个质数视为一个维度,则狄利克雷卷积就是一个带系数的高维前缀和,考虑分别处理每一个维度 $p_i$ ,每个 $p_k$ 都是一个物品,每个物品只转移一次,所以是一个01背包(DP统计所有方案的价值总和).物品 $p_k$ 的体积为 $p_k$ (这里总体积是每个物品的体积相乘),价值为 $g(p_k)$ (价值也相乘).
常见卷积式子:
若
则
关于 $\mathrm d$ 的高阶推导
二元
三元
n维二元
n维三元
公式
常见技巧:变换枚举变量,在类欧几里得算法的时候也会用到.有点像二重积分三重积分那里使用一个变量去反卡另一个变量的值域,这个很难说清,需要自己做题理解一下.
常用公式:
- 反演结论1:
- 结论2: 若 ,则 .
- 结论3:(1~n中与n互质的数的和是这个)
结论3的证明:
与d互质的数成对出现.
若id互质则有d-i与d互质
这样的数有$\frac{\varphi(d)d}2$对.
例题
1.求
第一步:一个数等于其因子的欧拉函数和,也就是 .
第二步:d如果是gcd的因子,则d一定同时是ij的因子.
第三步:改变枚举变量,先枚举d,考虑ij对于式子的贡献(这么想,假如d是d,i和j都可以是k*d,所以最大就是有 $\lfloor\frac nd\rfloor$ 个贡献,也就是这么多的 $\varphi(d)$ ,同时注意到后面式子完全和ij没关系了,放心转化即可.)
2.求
前三步是正常的推式子.
第四步上了反演结论.
第五步更换枚举变量消掉了两个 $\sum$ .
第六步使用T=kd代换,发现式子中的卷积关系.
第七步使用家喻户晓的 $\varphi=\mu*\mathrm{id}$ .
3.求
直接预处理即可.
4.求
前两步正常化卷积式子.
第三步特别注意,因为ij除以k,所以后面要乘上一个k.
第四步反演结论.
第五步特别注意乘上$d^2$,因为枚举d的时候从1开始意味着ij还会发生值的变化.
第六步就是最终答案.使用方法就是,先证明T后面的函数是一个积性函数,然后线性筛算出来,T那一项直接前缀和算出来,最后两项是等差数列直接套公式求.
5.求
第一步是约数公式.
第二步是莫反.
第三步把条件提出来,让d的条件变成区间.
第四步提出来 $\mu$ .
第五步考虑xy的贡献是这么多直接乘进去.
第六步是消掉最后条件的,方法为直接枚举di和dj.
第七步是最后整理式子,程序中可以数论分块解决(后面的 $f$ 可以 $O(n)$ 预处理).
6.求
第一步注意,因为n是固定的所以d不能从1开始,需要 $d|n$ .
第二步注意因为n是不变的,而i是变的,所以只需要乘一个n就可以.
第三步是因为,n|d,所以 $\frac nd\in d$ ,就有这个式子.
第四步就是结论3.
然后计算d phid:发现是积性函数,如果是质数结果是p(p-1)+1,如果不是质数对其进行因数分解:若 $p|i$ 则 $g(ip)=g(i)g(p)$ ,若不整除则 $g(ip)=g(i)+p^2(g(i)-g(i/p))$
7.求(f()是斐波那契数列第几项)
第一步考虑斐波那契数列每一项对于答案的贡献(乘几次).
第二,三步莫反.
第四步是想把e的范围提出来,于是令T=ke,把T范围(其实就是原先e的范围)写在最下面.
第五步是解决方法:括号里的式子只与T有关,与nm无关,可以预处理,然后快速幂算出来结果加上去就可以了.
8.求
其中
第一步是常见展开环节.
第二步是把次方乘进去(注意不要认为就是例1的phi的次方)
第三步是莫反.
第四步是令T=dx,代换进去.
最后的式子左边是积性函数,也就直接线筛处理了,复杂度 $O(n+T\sqrt n)$ .
找规律:
错误推法:
错因分析 :sum不可以随便提出来.默认 $(\sum\mu)^k=\sum(\mu^k)$ 这是不对的,根本就是两个函数.
9.计算
第一步是枚举gcd.
第二步是除一个d.
第三步是莫反.
第四步是套路替换.
第五步是因为 $d*\mu=1$ ,直接消掉了.
10.计算
我们发现把j带回去能得到更好的效果…
于是剩下的就简单了,基本上是板题.
11.给一个数列 $a_n$ ,如果两个数之间的 $\gcd$ 不等于1那就有一条通路,现在求从1到n的通路有多少条.(998244353取模)
设dp[i]表示从1到i有多少条路.转移: ,初始化dp1=1,答案是dpn.
设 ,上式转换成 ,莫反之后就是
怎么算这个式子呢?
开一个桶表示所有在i前面有这个因子的dp和,于是直接枚举因子然后乘上mu就行了…
12.计算
后半部分在筛法的时候可以累加.
一些比较牛逼的计算
- 欧拉函数的定义:p是质数,有
- 计算卷积 $\mathrm{id}*\varphi$ : 摆结论,由于直接分解即可,是 $O(\sqrt n)$ :缺点:一般积性函数计算,数论底子不扎实,化卷积式子(见题太少,紫题不满足需求了,建议来点黑的).
欧拉反演
二项式反演
若有
则有
本质上是一个容斥式子,比如唱跳rap篮球.