"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)]\)不同。