CF809E
给一颗树,求
\[\frac1{n(n-1)}\sum_{i=1}^n\sum_{j=1}^nφ(a_i*a_j)*dis(i,j)\\
一个柿子φ(ab)=φ(a)φ(b)φ(gcd(a,b))
\]
代入
\[\sum_{i=1}^n\sum_{j=1}^nφ(a_i)φ(a_j)\frac{gcd(a_i,a_j)}{φ(gcd(a_i,a_j))}dis(i,j)\\
提出来,相当于令d=那一坨\\
\large\sum_{d=1}^n\frac d{φ(d)}\sum_{i=1}^n\sum_{j=1}^n[gcd(a_i,a_j)=d]φ(a_i)φ(a_j)dis(i,j)\\
\]
尝试设一个函数换掉一大坨,我们康到分数后的一大坨大概和\(d\)有关,令
\[f(d)=\sum_{i=1}^n\sum_{j=1}^n[gcd(a_i,a_j)=d]φ(a_i)φ(a_j)dis(i,j)
\]
搞个反演,假装有
\[F(x)=\sum_{x|d}f(d)
\]
求解\(F(x)\),不难发现
\[F(x)=\sum_{i=1}^n\sum_{j=1}^nφ(a_i)φ(a_j)[x|gcd(a_i,a_j)]dis(i,j)
\]
并且
\[f(x)=\sum_{x|d}F(d)*μ(\frac dx)
\]
\(a\)为\(1\sim n\)的排列,涉及到点总数为\(n\ln n\)的,所以枚举\(x\),把\(x|d\)的点拿下来建虚树,
式子变成,\(m\)个点,点有点权,求:
\[\sum_{i=1}^m\sum_{j=1}^mv_i*v_j*dis(i,j)\\
\sum_{j=1}^m\sum_{j=1}^mv_i*v_j*(dep_i+dep_j-2*dep_{lca})\\
令s=v_i*v_j\\
\sum_{i=1}^m\sum_{j=1}^ms*dep_i+s*dep_j-2*s-dep_{lca}\\
\]
拆成三个\(\sum\)
不难发现前两个相同,显然可以\(O(m)\)处理
后面那一坨,需要在树上\(dp\),在\(lca\)处合并答案,\(dp_i\)表示\(i\)内部子树权值总和,换根\(dp\)
建虚树\(log\),复杂度\(O(nlog^2n)\)