Luogu5518
太闲了,推柿子!
\(type=1\)
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\frac{\operatorname{lcm}\{i,j\}}{\gcd\{i,k\}}
\\=\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\frac{ij}{\gcd\{i,k\}\gcd\{i,j\}}
\\=\frac{A!^{BC}B!^{AC}}{\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\gcd\{i,k\}\gcd\{i,j\}}
\\=\frac{A!^{BC}B!^{AC}}{(\prod_{i=1}^A\prod_{j=1}^C\gcd\{i,j\})^B(\prod_{i=1}^A\prod_{j=1}^B\gcd\{i,j\})^C}
\]
\[\prod_{i=1}^n\prod_{j=1}^m\gcd\{i,j\}=\prod_{p\in P}p^{\sum_{t\ge1}\lfloor\frac n{p^t}\rfloor\lfloor\frac m{p^t}\rfloor}
\]
其中 \(P\) 代表质数集。(Product 的经典技巧)
\(type=2\)
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C(\frac{\operatorname{lcm}\{i,j\}}{\gcd\{i,k\}})^{ijk}
\\=\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\frac{(ij)^{ijk}}{(\gcd\{i,k\}\gcd\{i,j\})^{ijk}}
\]
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C(ij)^{ijk}
\\=(\prod_{i=1}^Ai^i)^{\frac{B(B+1)}2\frac{C(C+1)}2}(\prod_{i=1}^Bi^i)^{\frac{A(A+1)}2\frac{C(C+1)}2}
\]
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C(\gcd\{i,k\}\gcd\{i,j\})^{ijk}
\\=(\prod_{i=1}^A\prod_{j=1}^C\gcd\{i,j\}^{ij})^{\frac{B(B+1)}2}(\prod_{i=1}^A\prod_{j=1}^B\gcd\{i,j\}^{ij})^{\frac{C(C+1)}2}
\]
\[\prod_{i=1}^n\prod_{j=1}^m\gcd\{i,j\}^{ij}
\\=\prod_{p\in P}p^{\sum_{t\ge1}\sum_{i=1}^n\sum_{j=1}^mij[p^t|i][p^t|j]}
\\=\prod_{p\in P}p^{\sum_{t\ge1}p^{2t}\frac{\lfloor\frac n{p^t}\rfloor(\lfloor\frac n{p^t}\rfloor+1)}2\frac{\lfloor\frac m{p^t}\rfloor(\lfloor\frac m{p^t}\rfloor+1)}2}
\]
\(type=3\)
刚刚两问一个莫反都木有……
这里我懒了,直接欧拉反演(
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C(\frac{\operatorname{lcm}\{i,j\}}{\gcd\{i,k\}})^{\gcd\{i,j,k\}}
\\=\prod_d(\prod_{i=1}^{\lfloor\frac Ad\rfloor}\prod_{j=1}^{\lfloor\frac Bd\rfloor}\prod_{k=1}^{\lfloor\frac Cd\rfloor}\frac{\operatorname{lcm}\{i,j\}}{\gcd\{i,k\}})^{\varphi(d)}
\]
\[\prod_d(\lfloor\frac Ad\rfloor!^{\lfloor\frac Bd\rfloor\lfloor\frac Cd\rfloor}\lfloor\frac Bd\rfloor!^{\lfloor\frac Ad\rfloor\lfloor\frac Cd\rfloor})^{\varphi(d)}
\]
直接数论分块即可。
\[\prod_d((\prod_{i=1}^{\lfloor\frac Ad\rfloor}\prod_{j=1}^{\lfloor\frac Cd\rfloor}\gcd\{i,j\})^{\lfloor\frac Bd\rfloor}(\prod_{i=1}^{\lfloor\frac Ad\rfloor}\prod_{j=1}^{\lfloor\frac Bd\rfloor}\gcd\{i,j\})^{\lfloor\frac Cd\rfloor})^{\varphi(d)}
\]
\[\prod_d(\prod_{i=1}^{\lfloor\frac Ad\rfloor}\prod_{j=1}^{\lfloor\frac Bd\rfloor}\gcd\{i,j\})^{\lfloor\frac Cd\rfloor\varphi(d)}
\\=\prod_d(\prod_{p\in P}p^{\sum_{t\ge1}\lfloor\frac A{dp^t}\rfloor\lfloor\frac B{dp^t}\rfloor})^{\lfloor\frac Cd\rfloor\varphi(d)}
\\=\prod_{p\in P}p^{\sum_{t\ge1}\sum_d\lfloor\frac A{dp^t}\rfloor\lfloor\frac B{dp^t}\rfloor\lfloor\frac Cd\rfloor\varphi(d)}
\]
用数论分块暴力计算这个东西的复杂度依赖于和式
\[\sum_{p\in P}\sum_{t\ge1}\sqrt{\lfloor\frac n{p^t}\rfloor}
\]
的量级。
\[\sum_{p\in P}\sum_{t\ge1}\sqrt{\lfloor\frac n{p^t}\rfloor}
\\=O(\sum_{p\in P,p\le n}\sum_{t\ge1}\sqrt{\frac n{p^t}})
\\=O(\sum_{p\in P,p\le n}\sqrt{\frac np})
\\=O(\sum_{p\le n}\sqrt{\frac np})
\\=O(n)
\]
因此暴力计算和式的复杂度是 \(O(n)\) 的。
再取 \(O(\frac n{\log n})\) 次快速幂,复杂度 \(O(n)\)。
本文来自博客园,作者:myee,转载请注明原文链接:https://www.cnblogs.com/myee/p/Luogu-solution-p5518.html