[MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题

[MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题

题目描述

东风谷 早苗(Kochiya Sanae)非常喜欢幽灵乐团的演奏,她想对她们的演奏评分。

因为幽灵乐团有 \(3\) 个人,所以我们可以用 \(3\) 个正整数 \(A,B,C\) 来表示出乐团演奏的分数,她们的演奏分数可以表示为

\[\prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left(\frac{\text{lcm}(i,j)}{\gcd(i,k)}\right)^{f(type)} \]

因为音乐在不同的部分会有不同的听觉感受,所以 \(type\) 会在 \(\{0,1,2\}\) 中发生变化,其中:

\[\begin{aligned} f(0)&=1 \cr f(1)&=i \times j \times k \cr f(2)&=\gcd(i,j,k) \end{aligned}\]

因为乐团的歌实在太好听了,导致分数特别高,所以她们的分数要对给定的正整数 \(p\) 取模。

因为有很多歌曲要演奏,所以早苗给出了 \(T\) 组询问。
对于 \(100\%\) 的数据:

\[1\leq A,B,C\leq 10^5 \ \ \ \ 10^7 \leq p \leq 1.05\times 10^9\ \ \ \ p\in \{ prime\} \ \ \ \ T =70 \]

思路点拨

主要还是根据我的 莫反套路 来进行推导。真的十分经典,可以看一看(广告)

先看到原式,这个式子可以使用 \(lcm(i,j)=\dfrac{ij}{gcd(i,j)}\)

\[\prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left(\frac{\text{lcm}(i,j)}{\gcd(i,k)}\right)^{f(type)}=\prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left(\frac{ij}{\gcd(i,j)\gcd(i,k)}\right)^{f(type)} \]

因为是模意义下的乘法,所以我们分子分母可以简答合并一下,那么就是:

\[\dfrac{\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C (ij)^f}{\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C \gcd(i,j)\gcd(i,k)^{f}} \]

至此操作很常规,和一道叫 product 的莫反题一样。

然后我们考虑分子和分母,这又可以拆分:

\[\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C (ij)^f=\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C i^f\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C j^f \]

这都差不多,一下只讲解左边一半 \(\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C i^f\)

分母差不多,也只讲解左边一半,右边是一样的。

\[\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C \gcd(i,j)^f \]

\(type\) 三种,没有什么太大关联,所以分开讲解了。

\(type=0\)

这部分幼儿园随便写。前提是看了我的博客(广告推销)
此时 \(f=1\) 。十分的人性化,但是分数很少。

先讲最简单的分子(还是再讲一遍,我们分子分母都只讲一半,另一半是一样的):

\[=\prod_{i=1}^A i^{BC} \]

$O(n) $ 阶乘快速幂直接过。分母也很简单:

\[=\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C \gcd(i,j) \]

\(k\) 没有什么太大关系啊,我们算 \(\prod_{i=1}^A \prod_{j=1}^B\gcd(i,j)\) ,带上 \(C\) 的幂就可以了。

看到这种式子,我们也是使用技巧(可以看一下上面的博客,广告):枚举 \(\gcd\) ,然后式子就可以转化:

\[\prod_{d=1}^{A}d^{\sum_{i=1}^A \sum_{j=1}^B [\gcd(i,j)=d]} \]

先考虑一下幂:

\[\sum_{i=1}^A\sum_{j=1}^B[\gcd(i,j)=d]=\sum_{i=1}^{\lfloor \frac{A}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{B}{d} \rfloor} [\gcd(i,j)=1] \]

现在我们可以莫反:

\[\sum_{i=1}^{\lfloor \frac{A}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{B}{d} \rfloor} \sum_{k=1}^i \mu(k)[k|i][k|j] \]

我们进而枚举 \(k\)

\[\sum_{k=1}^{\lfloor \frac{A}{d}\rfloor} \mu(k) \lfloor \dfrac{A}{kd}\rfloor \lfloor \dfrac{B}{kd} \rfloor \]

我们集合 \(kd\) ,直接释放奥义 \(T=kd\) ,带回原式枚举 \(T\)

\[\prod_{d=1}^{A}d^{\sum_{k=1}^{\lfloor \frac{A}{d}\rfloor} \mu(k) \lfloor \frac{A}{kd}\rfloor \lfloor \frac{B}{kd} \rfloor}=\prod_{T=1}^{A} (\prod_{d|T}d^{\mu(\frac{T}{d})})^{\lfloor \frac{A}{T}\rfloor \lfloor \frac{B}{T}\rfloor} \]

而中间括号内的部分 \(O(n \log n)\) 预处理一下。富比尼定理枚举 \(T\) ,时间复杂度 \(O(T(\sqrt A \log AB)+n \log n)\) 。大抵是可以过的罢。

这部分推出来是很基础的。

\(type=1\)

这部分还是偏简单。
分子有点侮辱智商,我们直接写出答案:

\[\prod_{i=1}^A i^{i \times \frac{B(1+B)C(1+C)}{4}} \]

考虑分母:

\[=\prod_{i=1}^A \prod_{j=1}^B \prod_{k=1}^C \gcd(i,j)^{ijk} \]

\(k\) 没有多大关系,所以直接提出去:

\[=(\prod_{i=1}^A \prod_{j=1}^B \gcd(i,j)^{ij})^{\frac{(1+C)C}{2}} \]

考虑括号内的数,使用技能 枚举 \(\gcd\) :

\[=\prod_{d=1}^A d^{\sum_{i=1}^A\sum_{j=1}^B ij[\gcd(i,j)=d]} \]

\[=\prod_{d=1}^A d^{d^2 \sum_{i=1}^{\lfloor \frac{A}{d}\rfloor}\sum_{j=1}^{\lfloor \frac{B}{d}\rfloor} ij[\gcd(i,j)=1]} \]

使用莫比乌斯反演:

\[=\prod_{d=1}^{A} d^{d^2\sum_{k=1}^{\lfloor \frac{A}{d}\rfloor} k^2 \mu(k) \frac{(1+ \frac{A}{kd})\frac{A}{kd}}{2}\frac{(1+ \frac{B}{kd})\frac{B}{kd}}{2}}\]

现在我们使用三界魔法 \(T=kd\) 对其绝杀:

\[=\prod_{d=1}^A \prod_{k=1}^{\lfloor \frac{A}{d}\rfloor} d^{d^2k^2\mu(k)\frac{(1+ \frac{A}{kd})\frac{A}{kd}}{2}\frac{(1+\frac{B}{kd})\frac{B}{kd}}{2}}\]

\[=\prod_{T=1}^A ( \prod_{d|T} d^{\mu(\frac{T}{d})} )^{\frac{(1+ \frac{A}{T})\frac{A}{T}}{2}\frac{(1+\frac{B}{T})\frac{B}{T}}{2}\times T^2} \]

实现一样的,括号内预处理,其余的富比尼定理优化一下就可以了。时间复杂度和 \(type=0\) 是一样的。

\(type=2\)

这部分是很有挑战的了,我目前没有推出分母。但是分子是比较简单的。

我们按照套路,枚举一下 \(\gcd(i,j,k)\)

\[=\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C i^{\gcd(i,j,k)} \]

底数至于 \(i\) 有关,直觉提前 \(i\)

\[=\prod_{i=1}^A i^{\sum_{j=1}^B \sum_{k=1}^C \gcd(i,j,k)} \]

幂的部分拎出来先,这部分的 Latex 比较复杂,如果还是像 \(type=1\) 的样子写我会去世的。

\[\sum_{j=1}^B\sum_{k=1}^C \gcd(i,j,k)=\sum_{d|i} d \sum_{j=1}^{\lfloor \frac{B}{d}\rfloor}\sum_{k=1}^{\lfloor \frac{C}{d}\rfloor} [\gcd(\frac{i}{d},j,k)=1] \]

开始莫反:

\[=\sum_{d|i} d \sum_{k|\frac{i}{d}}^{\lfloor \frac{B}{d}\rfloor} \mu(k) \lfloor \frac{B}{kd}\rfloor \lfloor \frac{C}{kd}\rfloor \]

我们发动三阶魔法 \(T=kd\) ,对其进行推导(血条太厚了,没有终结掉):

\[=\sum_{T|i} \lfloor \dfrac{B}{T}\rfloor \lfloor \dfrac{C}{T}\rfloor (\sum_{d|T}d\mu(\frac{T}{d})) \]

括号内什么筛法预处理就可以了,再做一个前缀和。其余的部分富比尼定理优化计算。\(O(T\sqrt n)\)

posted @ 2023-06-12 19:11  Diavolo-Kuang  阅读(13)  评论(0编辑  收藏  举报