大意
给定一棵树, 有点权, 求两两间点权互质的点的距离之和.
题解
数论
考虑使用容斥.
设 p1,p2,⋯,pk 为 1→max(ai) 中的质数.
设 Px 为树中两个点间点权的 gcd 为 x 的倍数的路径集合, d(P) 为 P 的所有路径的长度之和.
那么
res=d(P1)−d(Pp1∪Pp2∪⋯∪Ppk)=d(P1)−d(Ppi)+d(Ppi∩Ppj)+d(Ppi∩Ppj∩Ppl)⋯=d(P1)−d(Ppi)+d(Ppipj)−d(Ppipjpl)⋯(i=j=l)
观察上式的系数以及 Px 中的 x 可以发现, x=1 时, 系数为 1, x 有一个因数时, 系数为 −1, 两个为 1, 三个为 −1, 同时不存在 x 有两个及以上因数的项.
可以发现符合莫比乌斯函数的性质.
所以
res=i=1∑max(aj)μ(i)⋅d(Pi)
树论
现在要求 d(Px).
可以用树上启发式合并.
设 disx 为当前记录的子树中, x∣valv 的 ∑udepv.
那么, 点 u 的贡献为:
y∣valu∑μ(i)⋅(disx+depu−2⋅deplca)