Warning:请不要使用此博客作为学习用途,这个博客是写出来我自己看的,所以很有可能前言不搭后语或者出言不逊。
# 备忘录
## 一些记号
$ ext{I}(x)=1$
$ ext{id}(x)=x$
$ ext{e}(x)=[x=1]$
$ ext{d}(x)=sumlimits_{d|x}1$
$sigma(x)=sumlimits_{d|x}d$
$varphi(x)$ 欧拉函数
$mu(x)$ 莫比乌斯函数
## 一些数论定理
$e*F=F$,$F$ 为任何数论函数。
$e=mu * 1$,$[n=1]=sumlimits_{d|n}mu(d)$
$id=varphi*1$,$n=sumlimits_{d|n}phi(d)$
$mu*id=varphi$
$mu*d=1$
$id=varphi *1$
## 莫比乌斯反演
$ ext{g}(n)=sumlimits_{d|n}{ ext{f}(n)}$,则 $ ext{f}(n)=sumlimits_{d|n}mu({frac{n}{d}}) ext{g}(d)$
## 狄利克雷卷积
$ ext{f}(n)* ext{g}(n)=sumlimits_{d|n}f(d)g(frac{n}{d})$
# Euler 函数的前缀和
令 $phi(n)=sumlimits_{i=1}^nvarphi(i)$,求 $phi(n)$。
$$
egin{aligned}{}
&quad frac{1}{2}n(n+1)\
&=sumlimits_{i=1}^{n}i=sumlimits_{i=1}^nsumlimits_{d|i}varphi(frac{i}{d})\
&=sumlimits_{d=1}^nsumlimits_{1leq i leq n, d|k}varphi(frac{i}{d})\
&=sumlimits_{d=1}^{n}sumlimits_{i=1}^{lfloorfrac{n}{d} floor}varphi(i)\
&=sumlimits_{d=1}^nphi(lfloor frac{n}{d}
floor)\
end{aligned}\
herefore phi(n)=frac{1}{2}n(n+1)-sumlimits_{d=2}^{n}phi(lfloorfrac{n}{d}
floor)\
$$
当知道了 $phi(lfloorfrac{n}{d} floor)$ 运用整除分块即可在 $mathcal O(sqrt n)$ 内算出 $phi(n)$。
利用记忆化搜索,可以防止一个值被计算多次。
总时间复杂度 $mathcal O(n^frac{3}{4})$。
因此可以使用欧拉筛筛出前 $n^frac{2}{3}$ 的值,然后运用杜教筛,那么总时间复杂度为 $mathcal O(n^frac{2}{3})$。显然非常玄学,我也不知道怎么计算出来的qwq
# Möbius 函数的前缀和
令 $ ext{M}(n)=sumlimits_{i=1}^nmu(i)$。计算 $ ext{M}(n)$。
$$
egin{aligned}
1
&=sumlimits_{i=1}^n ext{e}(i)=sumlimits_{i=1}^nsumlimits_{d|i}mu(d)\
&=sumlimits_{d=1}^nsumlimits_{1leq ileq n,d|i}mu(frac{i}{d})\
&=sumlimits_{d=1}^nsumlimits_{i=1}^{lfloorfrac{n}{d}
floor}mu(i)\
&=sumlimits_{d=1}^n ext{M}(lfloorfrac{n}{d}
floor)
end{aligned}\
herefore ext{M}(n)=1-sumlimits_{d=2}^n ext{M}(lfloorfrac{n}{d}
floor)
$$
同理可以运用线性筛计算。