给一颗树,求
[frac1{n(n-1)}sum_{i=1}^nsum_{j=1}^nφ(a_i*a_j)*dis(i,j)\
一个柿子φ(ab)=φ(a)φ(b)φ(gcd(a,b))
]
代入
[sum_{i=1}^nsum_{j=1}^nφ(a_i)φ(a_j)frac{gcd(a_i,a_j)}{φ(gcd(a_i,a_j))}dis(i,j)\
提出来,相当于令d=那一坨\
largesum_{d=1}^nfrac d{φ(d)}sum_{i=1}^nsum_{j=1}^n[gcd(a_i,a_j)=d]φ(a_i)φ(a_j)dis(i,j)\
]
尝试设一个函数换掉一大坨,我们康到分数后的一大坨大概和(d)有关,令
[f(d)=sum_{i=1}^nsum_{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}^nsum_{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)为(1sim n)的排列,涉及到点总数为(nln n)的,所以枚举(x),把(x|d)的点拿下来建虚树,
式子变成,(m)个点,点有点权,求:
[sum_{i=1}^msum_{j=1}^mv_i*v_j*dis(i,j)\
sum_{j=1}^msum_{j=1}^mv_i*v_j*(dep_i+dep_j-2*dep_{lca})\
令s=v_i*v_j\
sum_{i=1}^msum_{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))