洛谷P3327 [SDOI2015]约数个数和(莫比乌斯反演)

题目大意:

(d(x))(x)的约数个数,给定(n,m),求

[sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}d(ij) ]

首先我们需要知道一个神仙定理:

[d(ij)=sumlimits_{x|i}sumlimits_{y|j}[gcd(x,y)==1] ]

证明:

假设(ij)中存在因子(p^k),且(i)(p)的最高次因子为(p^{k_1}),且(j)(p)的最高次因子为(p^{k_2}),那么:

(k<=k_1) 我们可以认为在(i)中选择了(k)
(k>k_1) 我们可以认为在&i&总选择了(k_1)个,并且在(j)中选择了(k-k_1)
这样就可以构成一个任意一个质因子的任意次幂的映射,这个映射成立的前提是([gcd(i,j)==1])
就这样证完啦_(:з」∠)_

所以根据神仙定理

[ret=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}sumlimits_{x|i}sumlimits_{y|j}[gcd(x,y)==1] ]

把枚举因子提前,枚举倍数

[ret=sumlimits_{x=1}^{n}sumlimits_{y=1}^{m}lfloorfrac{n}{x} floor lfloorfrac{m}{y} floor [gcd(x,y)==1] ]

(x,y)看着不顺眼,改成(i,j)(qwq)

[ret=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}lfloorfrac{n}{i} floor lfloorfrac{m}{j} floor [gcd(i,j)==1] ]

按照(YY)(GCD)的套路,设

[f(x)=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}lfloorfrac{n}{i} floor lfloorfrac{m}{j} floor [gcd(i,j)==x] ]

[g(x)=sumlimits_{x|d}f(d) ]

[g(x)=sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}lfloorfrac{n}{i} floor lfloorfrac{m}{j} floor [x|gcd(i,j)] ]

(x)提出来,消除(gcd)的影响

[g(x)=sumlimits_{i=1}^{lfloorfrac{n}{x} floor}sumlimits_{j=1}^{lfloorfrac{m}{x} floor}lfloorfrac{n}{ix} floor lfloorfrac{m}{jx} floor ]

根据莫比乌斯反演第二形式,有

[f(n)=sumlimits_{n|d}mu(frac{d}{n})*g(d) ]

由题意得

[ret=f(1)=sumlimits_{1|d}mu(frac{d}{1})*g(d)=sumlimits_{d=1}^{min(n,m)}mu(d)g(d) ]

(g(i))展开得到

[ret=sumlimits_{d=1}^{min(n,m)}mu(d)sumlimits_{i=1}^{lfloorfrac{n}{d} floor}sumlimits_{j=1}^{lfloorfrac{m}{d} floor}lfloorfrac{n}{di} floorlfloorfrac{m}{dj} floor ]

发现(lfloorfrac{n}{di} floor)(j)没有关系,把它提前

[ret=sumlimits_{d=1}^{min(n,m)}mu(d)sumlimits_{i=1}^{lfloorfrac{n}{d} floor}lfloorfrac{n}{di} floorsumlimits_{j=1}^{lfloorfrac{m}{d} floor}lfloorfrac{m}{dj} floor ]

到此,我们可以设

[s(n)=sumlimits_{i=1}^{n}lfloorfrac{n}{i} floor ]

这个(s)可以(O(nsqrt{n}))预处理

[ret=sumlimits_{d=1}^{min(n,m)}mu(d)s(lfloorfrac{n}{d} floor)s(lfloorfrac{m}{d} floor) ]

然后直接除法分块就好了,复杂度(O(nsqrt{n}+Tsqrt{n}))

原文地址:https://www.cnblogs.com/knife-rose/p/12016959.html