51nod 1675 (莫比乌斯反演)

我们先不考虑 a b i = b a j a_{b_i} = b_{a_j} 这种情况,那么就很裸的莫比乌斯反演了。
f ( x ) = i = 1 n j = 1 n [ gcd ( i , j ) = = x ] f(x) = \sum_{i=1}^{n}\sum_{j=1}^{n}[\gcd(i,j)==x]
在设 g ( x ) = x d f ( d ) g(x) = \sum_{x|d}f(d)
= x d i = 1 n j = 1 n [ gcd ( i , j ) = = d ] =\sum_{x|d}\sum_{i=1}^{n}\sum_{j=1}^{n}[\gcd(i,j)==d]
= i = 1 n j = 1 n [ x gcd ( i , j ) ] =\sum_{i=1}^{n}\sum_{j=1}^{n}[x|\gcd(i,j)]
= x i n x j n 1 =\sum_{x|i}^{n}\sum_{x|j}^{n}1
就得到如上式子,
那如果在考虑 a b i = b a j a_{b_i} = b_{a_j} 这个因素,只需加一个限制条件
f ( x ) = i = 1 n j = 1 n [ gcd ( i , j ) = = x ] [ a b i = b a j ] f(x) = \sum_{i=1}^{n}\sum_{j=1}^{n}[\gcd(i,j)==x][a_{b_i} = b_{a_j}]
套用上面的方式,得到: g ( x ) = x i n x j n [ a b i = b a j ] g(x) = \sum_{x|i}^{n}\sum_{x|j}^{n}[a_{b_i} = b_{a_j}]
对于这个式子,可以 l o g log 得到

然后反演回去: f ( x ) = x d u ( d x ) g ( d ) f(x)=\sum_{x|d}u(\frac{d}{x})*g(d)
这里x 等于1,所以最终答案为:
f ( 1 ) = d = 1 n u ( d ) g ( d ) f(1)=\sum_{d=1}^{n}u(d)*g(d)
= d = 1 n u ( d ) d i n d j n [ a b i = b a j ] =\sum_{d=1}^{n}u(d)* \sum_{d|i}^{n}\sum_{d|j}^{n}[a_{b_i} = b_{a_j}]

最终复杂度 O ( n l o g n ) O(nlogn)

猜你喜欢

转载自blog.csdn.net/weixin_43571920/article/details/106998816
今日推荐