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)\)

posted @ 2021-06-26 13:53  oisdoaiu  阅读(29)  评论(0编辑  收藏  举报