卧薪尝胆,厚积薄发。
进教室
Date: Thu Oct 18 09:27:27 CST 2018 In Category: NoCategory

Description:

求: $$ \prod_{i=1}^n\prod_{j=1}^n\gcd(i,j) $$ $1\leqslant testcases\leqslant10^7,1\leqslant n\leqslant 10^6$

Solution:

类似仪仗队那题的做法,可以把答案看成一个矩阵,然后发现矩阵是对称的,所以:
$$ \begin{align} 原式&=\prod_{i=1}^n\prod_{j=1}^i\gcd(i,j)\times2-n! \end{align} $$
这样中心就变成了求: $$ \prod_{i=1}^n\prod_{j=1}^i\gcd(i,j) $$ 然后有一个比较神奇的转化,就是把矩阵按行考虑,也就是设: $$ g[n]=\prod_{i=1}^n\gcd(i,n) $$ 然后: $$ g[n]=\prod_{i=1}^n\gcd(i,n)=\prod_{d|n}d^{\begin{align}\sum_{i=1}^n[\gcd(i,n)=d]\end{align}}=\prod_{d|n}d^{\varphi(\frac n d)} $$ 这样就可以先枚举 $d$ ,然后枚举 $d$ 的倍数,由调和级数得复杂度是 $O(n\ln n)$ 的,然后再求个前缀和就可以 $O(1)$ 回答询问了。
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡