求值:
$\displaystyle\sum_{i=x}^{n}\sum_{j=y}^{m}[\gcd(i,j)=k]\qquad(1\leqslant T,x,y,n,m,k\leqslant 50000)$
分析
由容斥原理可将原式分成4块处理,每一块式子为
$\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd(i,j)=k]$
化简得
$\displaystyle\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[\gcd(i,j)=1]$
因为当$\gcd(i,j)=1$时对答案有贡献,所以可以替换为$\varepsilon(\gcd(i,j))$,所以原式被化简为
$\displaystyle\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}\varepsilon(\gcd(i,j))$
将$\varepsilon(\gcd(i,j))$用$\text{Dirichlet}$卷积展开得
$\displaystyle\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}\sum_{d\mid\gcd(i,j)}\mu(d)$
变换求和顺序得
$\displaystyle\sum_{d=1}^{\lfloor\frac{n}{k}\rfloor}\mu(d)\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}d\mid i\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}d\mid j$
容易得知$\displaystyle 1\sim\lfloor\frac{n}{k}\rfloor$中有$d$的倍数$\displaystyle\lfloor\frac{n}{kd}\rfloor$个,所以原式被化简为
$\displaystyle\sum_{d=1}^{\lfloor\frac{n}{k}\rfloor}\mu(d)\lfloor\frac{n}{kd}\rfloor\lfloor\frac{m}{kd}\rfloor$
很明显,化简后的式子可以用数论分块解决(过程中默认$n\leqslant m$)
时间复杂度为$\displaystyle\Theta(N+T\sqrt{n})$
$Code$
1 |
|