莫比乌斯反演

莫比乌斯反演

坑是开了,补不补就另说了(((

1.数论分块

重要结论:

  • 对于常数 \(n\),满足

    \[\lfloor \frac{n}{i}\rfloor=\lfloor \frac{n}{j}\rfloor \]

    成立的最大的满足 \(i \le j \le n\)\(j\) 的 $\left\lfloor{\frac{n}{\lfloor \frac{n}{i}\rfloor }}\right\rfloor $ 。即块 \(\lfloor\dfrac{n}{i} \rfloor\) 的右端点为 $\left\lfloor{\frac{n}{\lfloor \frac{n}{i}\rfloor }}\right\rfloor $。

证明如下:

\[\because \left\lfloor \dfrac{n}{i} \right\rfloor \le \dfrac{n}{i}\\ \therefore \left\lfloor \dfrac{n}{\lfloor \dfrac{n}{i}\rfloor}\right\rfloor \ge \left\lfloor \dfrac{n}{\dfrac{n}{i}}\right\rfloor=\left\lfloor i \right\rfloor=i \]

证毕。

  • \(\forall a,b,c \in Z,\left\lfloor \dfrac{a}{bc}\right\rfloor=\left\lfloor \dfrac{\left\lfloor\dfrac{a}{b}\right\rfloor}{c}\right\rfloor\)

证明略。

复杂度分析:

\[\displaystyle \forall n\in N,|{\lfloor \dfrac{n}{d}\rfloor | d\in N}| \le \lfloor 2\sqrt n\rfloor \]

证明:

\(d \le \sqrt n\)\(\lfloor\dfrac{n}{d}\rfloor\) 最多有 \(\sqrt n\) 种取值。

\(d \ge \sqrt n\)\(\lfloor \frac{n}{d}\rfloor \le \lfloor\sqrt n\rfloor\)\(\lfloor \frac{n}{d} \rfloor\) 最多有 \(\sqrt n\) 种取值。

复杂度\(\mathcal{O(\sqrt n)}\)

例题:

UVA11526 \(H(n)\)

大板子,每一块求和即可。

int calc(int n)
{
	int l=1,r,res=0;
	while(l<=n)
	{
		r=n/(n/l);
		res+=(r-l+1)*(n/l);
		l=r+1;
	}
	return res;
}

P2261 [CQOI2007] 余数求和

转化一下也是板子,就是剖开取余问题,因为 \(a \% b\) 等价于 \(a-\left\lfloor \dfrac{a}{b}\right\rfloor \times b\),还是那样。

while(l<=n)
{
	if(k/l) r=min(k/(k/l),n);
	else r=n;
	Ans-=(k/l)*(r-l+1)*(l+r)/2;
	l=r+1;
}

2.莫比乌斯函数

定义

\(\mu\) 为莫比乌斯函数,定义如下:

\[\mu(n)=\left\{\begin{align} 1,n=0\\ 0,n \ \text{含有平方因子}\\ -1^k, k \text{为} n \text{的本质不同的因子个数} \end{align}\right. \]

性质

莫比乌斯函数是积性函数,且具有以下性质:

\[\sum_{d \mid n}{\mu(d)}=[n=1] \]

证明,设 \(\displaystyle n=\Pi_{i=1}^{k},n^{'}=\Pi_{i=1}^{k}\)

①.根据莫比乌斯函数的定义,有\(\displaystyle \sum_{d \mid n} \mu(d)=\sum_{d \mid n^{'}}\mu(d)\)

②.若 \(n'\) 的某因子 \(d\) ,则有 \(\mu(d)=(-1)^i\),则它由 \(i\) 个本质不同的质因数组成。由于质因数总共 \(k\) 个,所以满足上式的因子数共 \(C_k^i\) 个。

③.对于原式,转化为枚举 \(\mu(d)\) 的值。

​ 则 \(\displaystyle \sum_{d \mid n'}\mu(d)=\sum_{i=0}^{k}{C_k^i}\times (-1)^i=\sum_{i=0}^{k}{C_k^i\times (-1)^i \times 1^{k-i}}\),由二项式定理得该式 \(=(1+(-1))^k\),显然 \(k=0\) 时即 \(n=0\) 时为 \(1\),反之为 \(0\)

常用结论

\[[\gcd(i,j)=1]=\sum_{d\mid \gcd(i,j)}\mu(d) \]

无非就是把性质里的式子 \(n\) 换成了 \(\gcd(i,j)\) 而已。

线筛求莫比乌斯函数

利用积性函数的性质筛。

int sc,mu[N],prime[N];
bool vis[N];
void euler(int n)
{
	vis[1]=true;mu[1]=1;
    for(int i=2;i<=n;i++)
    {
		if(!vis[i])
        {
		   prime[++sc]=i;
            mu[i]=-1;
        }
        for(int j=1;j<=sc&&i*prime[j]<=n;j++)
        {
		   vis[i*prime[j]]=true;
            if(!(i%prime[j]))
            {
			   mu[i*prime[j]]=0;
                break;
            }
            mu[i*prime[j]]=-mu[i];
        }
    }
}

狄利克雷卷积

算法学习笔记(35): 狄利克雷卷积

一些关系

\[e=\mu \times 1 \Leftrightarrow \mu = \mu \times e=u\\ \sigma_k=Id_k\times 1 \Leftrightarrow Id_k=\mu \times \sigma_k\\ Id=\varphi\times 1 \Leftrightarrow \varphi =Id \times \mu \]

莫比乌斯反演

常用套路

\[[\gcd(i,j)=1]=\sum_{d\mid \gcd(i,j)}\mu(d) \]

还是那个结论。

一般处理问题中有类似于这样的式子的题目:

\[\sum_{i=1}^{n} \sum_{j=1}^{m} \gcd(i,j) \]

发现 \(\gcd(i,j)=Id(\gcd(i,j))\),则式子等价于:

\[\sum_{i=1}^{n}\sum_{j=1}^{m} Id(\gcd(i,j))\\ =\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d \mid \gcd(i,j)} \varphi(d)\\ =\sum_{d=1}\varphi(d)\left\lfloor\dfrac{n}{d} \right\rfloor \left\lfloor\dfrac{m}{d} \right\rfloor \]

posted @ 2022-06-05 08:47  Gym_nastics  阅读(34)  评论(0编辑  收藏  举报