莫比乌斯反演

前置知识

留个坑以后再填

公式

形式1:
\(\;F(n) = \sum\limits_{d|n}f(d)\)
\(\;f(n) = \sum\limits_{d|n}\mu(d)F(\frac{n}{d})\)
\(\;\)证明:\(f(n) = \sum\limits_{d|n}\mu(d)F(\frac{n}{d}) = \sum\limits_{d|n}\mu(d)\sum\limits_{k|\frac{n}{d}}f(k) = \sum\limits_{k|n}f(k)\sum\limits_{d|\frac{n}{k}}\mu(d) = \sum\limits_{k|n}f(k)[n=k] = f(n)\)
\(\;\)这里用到了\(\sum\limits_{d|n}\mu(d) = [n=1]\)

形式2:
\(\;F(n) = \sum\limits_{n|d}f(d)\)
\(\;f(n) = \sum\limits_{n|d}\mu(\frac{n}{d})F(d)\)
\(\;\)证明同理
\(\;\)这是较常用的公式

应用

题目 : 给出\(n, m, k\), 求满足\(x \leq n, y \leq m, gcd(x, y) = k\)\((x, y)\)的个数
\(f(k) = \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i, j) = k]\), 即答案就是\(f(k)\)
但是\(f(k)\)很难直接求出, 于是我们可以设\(F(k) = \sum\limits_{i=1}^n\sum\limits_{j=1}^m[k|gcd(i, j)]\)
由小学奥数知\(F(k) = \lfloor\frac{n}{k}\rfloor\lfloor\frac{m}{k}\rfloor\), 同时显然\(F(k) = \sum\limits_{k|d}f(d)\)
于是我们可以套用上面的公式\((\)所以说形式2是较常用的公式\()\)
得到\(f(k) = \sum\limits_{k|d}\mu(\frac{d}{k})F(d) = \sum\limits_{k|d}\mu(\frac{d}{k})\lfloor\frac{n}{d}\rfloor\lfloor\frac{m}{d}\rfloor\)
于是我们可以愉快用数论分块了\((\)数论分块是什么?留个坑以后再解释\()\)

类似这题的方法很常用

posted @ 2019-07-14 23:07  EZ_WYC  阅读(171)  评论(0编辑  收藏  举报