codechef TREECNT2

题意

给定\(n\)个点带边权树,求有多少路径gcd为\(1\)\(Q\)次修改一条边的边权。\(n\le 10^5,w_i\le 10^6,Q\le 100\)

做法

\(f_i\)为路径边权全为\(i\)的倍数的方案数。\(ans=\sum \mu(i)f_i\)
\(Q\)较小,可以将操作未涉及到的边进行预处理,\(\mu(i)\)\(0\)的不需要处理,所以每条边\(w\)有效的\(i\)为:\(\mu(i)\neq 0\And i|w\),比较少,可以直接做
然后对于每次操作用带秩并查集即可

posted @ 2020-06-14 16:18  Grice  阅读(138)  评论(0编辑  收藏  举报