Solution -「CF 990G」GCD Counting
构造函数 ans(x)ans(x)ans(x),f(x)f(x)f(x) 分别表示 gcd\gcdgcd 为 xxx 的链数和链 gcd\gcdgcd 有 xxx 因子的链数,于是 f(x)=∑d∣xans(d)f(x)=\sum\limits_{d\mid x}ans(d)f(x)=d∣x∑ans(d),由莫比乌斯反演得 ans(x)=∑x∣df(d)μ(dx)ans(x)=\sum\limits_{x|d}f(d)\mu(\frac{d}{x})ans(x)=x∣d∑f(d)μ(xd)。
把每一个点权为 xxx 的倍数的点拉出来,跑出各连通块大小可以平凡算出 f(x)f(x)f(x)。
但是 ans(x)ans(x)ans(x) 的计算一定需要莫反么?
代码给出的是容斥做法,via cqbzly。