莫比乌斯反演III

"haik, hen wir." -- somebody

概述

莫比乌斯反演通过一些恒等变形使需要高时间复杂度计算的式子变为可快速计算的。
一般来说,将形如\(\sum_{d|n}\)的式子提到前面,形如\(\sum_{i=1}^n\)的式子放到后面,这样后面就可以简化运算。

变换

扩展变换

\(\sum_{i=1}^nf(i)=\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}f(id)\)

抽取变换

\((a,b)=\sum_{d=1}^n[(a,b)=d]d\)

重排变换/交叉变换

\(\lfloor\frac{n}{k}\rfloor=\sum_{i=1}^n[k|i]\)
\(\sum_{i=1}^n\lfloor\frac{n}{i}\rfloor f(i)=\sum_{i=1}^nf(i)\sum_{j=1}^n[i|j]=\sum_{j=1}^n\sum_{i|j}f(i)\)

山东变换

\(d(nm)=\sum_{i|n}\sum_{j|m}[(i,j)=1]\)

重庆变换/双希变换

\(\sum_{d=1}^n\sum_{t=1}^nf(dt)g(d)h(t)=\sum_{D=1}^nf(D)\sum_{d|D}g(d)h(\frac{D}{d})\)

注:该变换一般用于最后一步,然后考虑如何快速处理\(\sum_{d|D}g(d)h(\frac{D}{d})\),如线性筛等。

杜教筛变换

\(\sum_{i=1}^n\sum_{d|i}f(d)g(\frac{i}{d})=\sum_{i=1}^ng(i)\sum_{d=1}^{\lfloor\frac{n}{i}\rfloor}f(d)\)

常用结论

K-GCD

\(\sum_{i=1}^n\sum_{j=1}^m[(i,j)=k]=\sum_{i=1}^{\lfloor \frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor \frac{m}{k}\rfloor}[(i,j)=1] = \sum_{d=1}^{min({\lfloor \frac{n}{k}\rfloor},{\lfloor \frac{m}{k}\rfloor})}\mu(d)\lfloor \frac{n}{kd}\rfloor \lfloor\frac{m}{kd}\rfloor\)

复习时更新:注意\([d=(i,j)]\)与\([d|(i,j)]\)不同。

上一篇:linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)


下一篇:Linux进程管理、任务管理