51nod 1675 (莫比烏斯反演)

我們先不考慮 abi=baja_{b_i} = b_{a_j} 這種情況,那麼就很裸的莫比烏斯反演了。
f(x)=i=1nj=1n[gcd(i,j)==x]f(x) = \sum_{i=1}^{n}\sum_{j=1}^{n}[\gcd(i,j)==x]
在設 g(x)=xdf(d)g(x) = \sum_{x|d}f(d)
=xdi=1nj=1n[gcd(i,j)==d]=\sum_{x|d}\sum_{i=1}^{n}\sum_{j=1}^{n}[\gcd(i,j)==d]
=i=1nj=1n[xgcd(i,j)]=\sum_{i=1}^{n}\sum_{j=1}^{n}[x|\gcd(i,j)]
=xinxjn1=\sum_{x|i}^{n}\sum_{x|j}^{n}1
就得到如上式子,
那如果在考慮 abi=baja_{b_i} = b_{a_j}這個因素,只需加一個限制條件
f(x)=i=1nj=1n[gcd(i,j)==x][abi=baj]f(x) = \sum_{i=1}^{n}\sum_{j=1}^{n}[\gcd(i,j)==x][a_{b_i} = b_{a_j}]
套用上面的方式,得到:g(x)=xinxjn[abi=baj]g(x) = \sum_{x|i}^{n}\sum_{x|j}^{n}[a_{b_i} = b_{a_j}]
對於這個式子,可以 loglog得到

然後反演回去:f(x)=xdu(dx)g(d)f(x)=\sum_{x|d}u(\frac{d}{x})*g(d)
這裏x 等於1,所以最終答案爲:
f(1)=d=1nu(d)g(d)f(1)=\sum_{d=1}^{n}u(d)*g(d)
=d=1nu(d)dindjn[abi=baj]=\sum_{d=1}^{n}u(d)* \sum_{d|i}^{n}\sum_{d|j}^{n}[a_{b_i} = b_{a_j}]

最終複雜度 O(nlogn)O(nlogn)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章