莫比乌斯反演题目选做

引用资料

前置知识

  • 积性函数
    称数论函数 \(f(n)\) 为积性函数,当其 \(f(1)=1\) 且满足对于任意互质正整数 \(a,b\),都有 \(f(ab)=f(a)f(b)\)
    称数论函数 \(f(n)\) 为完全积性函数,当其 \(f(1)=1\) 且满足对于任意正整数 \(a,b\),都有 \(f(ab)=f(a)f(b)\)
    常用积性函数:
    单位函数 \(\epsilon(n) = [n=1]\) (完全积性)
    常数函数 \(\mathrm{I}(n) = 1\) (完全积性)
    恒等函数 \(\mathrm{id}_k(n)=n^k\)\(\mathrm{id}_1(n)\) 通常记为 \(\mathrm{id}(n)\) (完全积性)
    欧拉函数 \(\phi(n)=\sum \limits_{i=1}^n [\gcd(i,n)=1]\)
    莫比乌斯函数 \(\mu(n)\)

  • 莫比乌斯函数
    \(\mu(x)=\begin{cases}1&n=1\\0&n\text{含有平方因子}\\(-1)^{k}&k\text{为}n\text{的本质不同质因子个数}\end{cases}\)

  • 莫比乌斯函数性质
    \(\sum \limits_{d|n} \mu(x)=\begin{cases}1&n=1\\0&n\ne1\end{cases}\)

  • 莫比乌斯反演公式
    \(f(n)\)\(g(n)\) 为数论函数。
    \(f(n) = \sum \limits_{d|n} g(d)\),则有 $g(n) = \sum \limits_{d|n} \mu(d) f(\frac{n}{d}) $
    \(f(n) = \sum \limits_{n|d} g(d)\),则有 $g(n) = \sum \limits_{n|d} \mu(\frac{d}{n}) f(d) $

  • 狄利克雷卷积
    对于两个数论函数 \(f(x)\)\(g(x)\),定义它们的狄利克雷卷积 \(h(x)\) 为:\(h(x)=\sum\limits_{d|x}f(d)g(\frac{x}{d})=\sum\limits_{ab=x}f(a)g(b)\)
    例子:
    \(\epsilon=\mu * \mathrm{I}\)
    \(\phi= \mathrm{id} * \mu\)
    \(\mathrm{id}=\mathrm{I}*\phi\)

  • 杜教筛
    在低于线性时间内求解积性函数的前缀和。
    对于积性函数 \(f\) ,要求求出 \(S(n)=\sum_{i=1}^n f(i)\)
    因为对于任意积性函数 \(g\) ,必满足 \(g(1)S(n)=\sum\limits_{i=1}^n (f*g)(i) - \sum\limits_{i=2}^n g(i)S(\left\lfloor \frac{n}{i} \right\rfloor)\)
    构造出可以快速求出 \(\sum\limits_{i=1}^n (f*g)(i)\) 和自身前缀和的积性函数 \(g\) ,用数论分块求解。

题目选做

题意:有 \(T\) 个询问,每个询问给出 \(a,b,d\),求满足 \(1 \leq x \leq a\)\(1 \leq y \leq b\),且 \(\gcd(x,y)=d\) 的二元组 \((x,y)\) 的数量。

\(a,b\) 除于 \(d\),题目即转化为求满足 \(1 \leq x \leq \left \lfloor \dfrac{a}{d} \right \rfloor\)\(1 \leq y \leq \left \lfloor \dfrac{b}{d} \right \rfloor\)\(\gcd(x,y)=1\) 的二元组 \((x,y)\) 的数量。
下文默认 \(n = \left \lfloor \dfrac{a}{d} \right \rfloor\)\(m = \left \lfloor \dfrac{b}{d} \right \rfloor\)
\(\begin{aligned}Ans & = \sum \limits_{i=1}^n \sum \limits_{j=1}^m [\gcd(i,j)=1] \\ &= \sum \limits_{i=1}^n \sum \limits_{j=1}^m \sum \limits_{k|\gcd(i,j)} \mu(k) \\ &= \sum \limits_{k=1}^n \sum \limits_{k|i}^n \sum \limits_{k|j}^m \mu(k) \\ &= \sum \limits_{k=1}^n \left \lfloor \dfrac{n}{k} \right \rfloor \left \lfloor \dfrac{m}{k} \right \rfloor \mu(k) \end{aligned}\)

预处理莫比乌斯函数,用数论分块与前缀和维护上述式子。


题意:有 \(T\) 个询问,每个询问给定 \(N,M\),求 \(1 \leq x \leq N\)\(1 \leq y \leq\)\(\gcd(x, y)\) 为质数的 \((x,y)\) 有多少对。
设 $ g(d) = \sum \limits_{i=1}^N \sum \limits_{j=1}^M [\gcd(i,j) = d] , f(n) = \sum \limits_{n|d} g(d) = \left \lfloor \dfrac{N}{n} \right \rfloor \left \lfloor \dfrac{M}{n} \right \rfloor $ 。
由莫比乌斯反演公式得:
\(\begin{aligned}g(n) &= \sum \limits_{n|d} \mu(\frac{d}{n})f(d) \\ &= \sum \limits_{n|d} \mu(\frac{d}{n}) \left \lfloor \dfrac{N}{d} \right \rfloor \left \lfloor \dfrac{M}{d} \right \rfloor \\ &= \sum \limits_{a=1}^{\left \lfloor \frac{N}{n} \right \rfloor} \mu(a) \left \lfloor \dfrac{N}{an} \right \rfloor \left \lfloor \dfrac{M}{an} \right \rfloor \end{aligned}\)
则 $Ans = \sum \limits_{k \in \text{质数}}^N g(k) = \sum \limits_{k=1}^N \sum \limits_{a=1}^{\left \lfloor \frac{N}{k} \right \rfloor} \mu(a) \left \lfloor \dfrac{N}{ak}\right \rfloor \left \lfloor \dfrac{M}{ak} \right \rfloor $ 。
\(T = ak\),则 $Ans = \sum \limits_{T=1}^N \left \lfloor \dfrac{N}{T}\right \rfloor \left \lfloor \dfrac{M}{T} \right \rfloor \sum \limits_{k \in \text{质数},k|T} \mu(\dfrac{T}{k}) $。其中 \(\sum \limits_{k \in \text{质数},k|T} \mu(\dfrac{T}{k})\) 部分可以预处理。用前缀和与数论分块进行维护。


题意:给一个数列,每次随机选一个 \(1\)\(m\) 之间的数加在数列末尾,数列中所有数的 \(\gcd=1\) 时停止,求期望长度。
\(E(n)\) 为数列第一个数为 \(n\) 的期望长度。
\(\begin{aligned} E(1)&=1 \\ E(n)&=\dfrac{\sum\limits_{k=1}^m E(\gcd(k,n))}{m} +1 \\ &=\dfrac{m+\sum\limits_{k=1,n \nmid k}^m E(\gcd(k,n))}{m - \left \lfloor \frac{m}{n} \right \rfloor} \\ &=\dfrac{m + \sum \limits_{ d|n , d \neq n} E(d) \sum \limits_{k=1}^{\left \lfloor \frac{m}{d} \right \rfloor } [\gcd(k,\frac{n}{d})=1]}{m - \left \lfloor \frac{m}{n} \right \rfloor} \\ &=\dfrac{m + \sum \limits_{ d|n , d \neq n} E(d) \sum \limits_{k| \frac{n}{d} } \mu(k) \left \lfloor \frac{m}{dk} \right \rfloor }{m - \left \lfloor \frac{m}{n} \right \rfloor} \\ &=\dfrac{m + \sum \limits_{ T|n } \left \lfloor \frac{m}{T} \right \rfloor \sum \limits_{k|T,\frac{T}{k} \neq n } E(\frac{T}{k}) \mu(k) }{m - \left \lfloor \frac{m}{n} \right \rfloor} \end{aligned}\)

因此对于每个 \(n\) ,计算完 \(E(n)\) 后处理出 \(\sum \limits_{k|T} E(\frac{T}{k}) \mu(k)\) 即可达到 \(O(m \sqrt{m})\) 的时间复杂度,足以通过本题。

posted @ 2021-07-27 14:00  Alnorie  阅读(77)  评论(0)    收藏  举报