题意:
给定一棵有 n n n 个结点的树,结点带权 a i a_i ai,求点权互质的所有点对距离和。 ( n , a i ≤ 1 0 5 ) (n, a_i \leq 10^5) (n,ai≤105)
链接:
https://nanti.jisuanke.com/t/A1082
解题思路:
考虑点分治处理路径,那么子问题为求序列中所有互质点对的信息,即处理 g c d = 1 gcd = 1 gcd=1 的点对,记答案为 f ( 1 ) f(1) f(1),那么利用莫比乌斯进行容斥, f ( 1 ) = ∑ i = 1 1 0 5 μ ( i ) g ( i ) f(1) = \sum\limits_{i = 1}^{10^5} \mu(i)g(i) f(1)=i=1∑105μ(i)g(i),其中 g ( i ) g(i) g(i) 为含 i i i 因子的点对的统计答案。预处理 μ ( i ) \mu(i) μ(i),点分 c a l ( ) cal() cal() 时,每个点只会对 g ( i ) g(i) g(i) 有贡献,其中 i ∣ a i i \mid a_i i∣ai,枚举因子进行统计。总复杂度为 O ( n l o g n 1 0 5 ) O(nlogn\sqrt{10^5}) O(nlogn105),松上界。
此外,考虑直接进行树形 d p dp dp,困难在于每个点需要维护一个长度为 1 0 5 10^5 105 的表来进行答案统计,故用 d s u o n t r e e dsu~on~tree dsu on tree 来仅维护一个全局的表,可以在相同的复杂度内求解。
另一个角度看,每次枚举因子 i i i,仅考虑对含