1 条题解
-
0
自动搬运
来自洛谷,原作者为

VinstaG173
Si Dieu n'existait pas, il faudrait l'inventer.搬运于
2025-08-24 23:11:07,当前版本为作者最后更新于2024-12-20 14:37:12,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
简单推式子题,预估难度弱省省选。
本文中时间复杂度 表示预处理复杂度 ,单次询问复杂度 。
首先由 Min-max 容斥有
$$\operatorname{lcm}(x_1,x_2,\dots,x_n)=\prod_{S\subseteq\{1,2,\dots,n\},S \neq \varnothing}\gcd\{x_i : i \in S\}^{(-1)^{\lvert S \rvert-1}}. $$事实上这个式子由 随便算两下就出来了,不用熟知 Min-max 容斥。
由 Fibonacci 数的性质 ,因此
$$\begin{aligned} \prod_{a_1=1}^{m}\prod_{a_2=1}^{m}\cdots\prod_{a_n=1}^{m}\operatorname{lcm}(f_{a_1},f_{a_2},\dots,f_{a_n})&=\prod_{a_1=1}^{m}\prod_{a_2=1}^{m}\cdots\prod_{a_n=1}^{m}\prod_{S\subseteq\{1,2,\dots,n\},S \neq \varnothing}f_{\gcd\{a_i : i \in S\}}^{(-1)^{\lvert S \rvert-1}}\\ &=\prod_{d=1}^{m}f_d^{\sum\limits_{a_1=1}^{m}\sum\limits_{a_2=1}^{m}\cdots\sum\limits_{a_n=1}^{m}\sum\limits_{S\subseteq\{1,2,\dots,n\},S \neq \varnothing}(-1)^{\lvert S \rvert-1}[\gcd\{a_i : i \in S\}=d]}\\ &=\prod_{d=1}^{m}f_d^{\sum\limits_{k=1}^{n}(-1)^{k-1}\binom{n}{k}m^{n-k}\sum\limits_{a_1=1}^{m}\sum\limits_{a_2=1}^{m}\cdots\sum\limits_{a_k=1}^{m}[\gcd(a_1,a_2,\dots,a_k)=d]}\\ &=\prod_{d=1}^{m}f_d^{\sum\limits_{k=1}^{n}(-1)^{k-1}\binom{n}{k}m^{n-k}\sum\limits_{a_1=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\sum\limits_{a_2=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\cdots\sum\limits_{a_k=1}^{\left\lfloor\frac{m}{d}\right\rfloor}[\gcd(a_1,a_2,\dots,a_k)=1]}\\ &=\prod_{d=1}^{m}f_d^{\sum\limits_{k=1}^{n}(-1)^{k-1}\binom{n}{k}m^{n-k}\sum\limits_{a_1=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\sum\limits_{a_2=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\cdots\sum\limits_{a_k=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\sum\limits_{t \mid \gcd(a_1,a_2,\dots,a_k)}\mu(t)}\\ &=\prod_{d=1}^{m}f_d^{\sum\limits_{k=1}^{n}(-1)^{k-1}\binom{n}{k}m^{n-k}\sum\limits_{t=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\mu(t)\left\lfloor\frac{m}{dt}\right\rfloor^{k}}\\ &=\prod_{d=1}^{m}\prod_{t=1}^{\left\lfloor\frac{m}{d}\right\rfloor}f_d^{\mu(t)\sum\limits_{k=1}^{n}(-1)^{k-1}\binom{n}{k}m^{n-k}\left\lfloor\frac{m}{dt}\right\rfloor^{k}}\\ &=\prod_{D=1}^{m}\left(\prod_{d \mid D}f_d^{\mu\left(\frac{D}{d}\right)}\right)^{m^n-\left(m-\left\lfloor\frac{m}{D}\right\rfloor\right)^n}\\ &=\prod_{D=1}^{m}F(D)^{G\left(\left\lfloor\frac{m}{D}\right\rfloor\right)}, \end{aligned}$$其中
$$F(D)=\prod_{d \mid D}f_d^{\mu\left(\frac{D}{d}\right)},G(k)=m^n-\left(m-k\right)^n. $$直接朴素预处理 ,暴力计算可以做到时间复杂度 。
为了优化,可以用整除分块处理上式。我们可以在 的时间复杂度下计算 ,现在我们考虑较快速计算 。
由于
$$\prod_{i=1}^{D}F(i)=\prod_{d=1}^{D}f_d^{\sum\limits_{i=1}^{\left\lfloor\frac{D}{d}\right\rfloor}\mu(i)}, $$我们可以线性预处理 Fibonacci 数列前缀积和 前缀和后用整除分块在 的时间复杂度下计算上式。时间复杂度 。
注意到模数不大,线性预处理出逆元,利用类似 Dirichlet 前缀和的方法计算卷积预处理出 ,同时用 Euler 定理优化计算 ,即可做到 ,空间复杂度 。
以上做法已经足够通过本题,但其实不考虑多组询问我们还可以做到更优。以下做法由验题人 wkywkywky 提出。
注意刚才的式子
$$\prod_{i=1}^{D}F(i)=\prod_{d=1}^{D}f_d^{\sum\limits_{i=1}^{\left\lfloor\frac{D}{d}\right\rfloor}\mu(i)}, $$我们只需要求出 与 的块筛。其中 函数前缀和可以用杜教筛做到 , 数列前缀积可以用这道题的方法, 预处理,且对于 ,做到 单次查询。
在处理出 和 的基础上,预处理 的前缀积到 ,可以做到 。平衡复杂度取 ,总复杂度约为 ,可能常数较大,瓶颈主要在 的计算过程中的 , 三部分的 次数大约分别为 。
- 1
信息
- ID
- 10962
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者