CF990G GCD Counting
tag:莫比乌斯反演,并查集
题意:给一棵树带点权,对于每个 \(1\le k\le 2\cdot10^5\),求出有多少条路径的 \(gcd=k\)。
\(n,a_i\leq 2\cdot10^5\)
对于一个 \(k\),要求的是
\[\sum_{x,y}[gcd(x\to y)=k]
\]
这个看上去很眼熟,试试莫比乌斯反演一下
\[\sum_{g}\mu(g)(\sum_{x,y}[(g\cdot d)|gcd(x\to y)])
\]
而 \([K|gcd(x\to y)]\) 等价于,\(K\) 整除 \(x\to y\) 的每一个点。而这个是很好求的,只考虑能被 \(K\) 整除的点,会形成若干联通块,在同一个联通块内任意选两个点都是满足条件的点对。这部分复杂度\(O(\sum\text{因数个数})\)
然后直接暴力计算上式即可,复杂度为调和级数 \(O(nlogn)\)。