“当你想不出来一道题的时候就想一下排序”
先不考虑 \(a\),求
\[ \begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m\sigma_1(\gcd(i,j))\\ =&\sum_{i=1}^n\sum_{j=1}^m\sum_{d=1}^{\min(n,m)}[d=\gcd(i,j)]\sigma_1(d)\\ =&\sum_{d=1}^{\min(n,m)}\sigma_1(d)\sum_{i=1}^{\left\lfloor\frac nd\right\rfloor}\sum_{j=1}^{\left\lfloor\frac md\right\rfloor}\sum_{p\mid i\land p\mid j}\mu(p)\\ =&\sum_{d=1}^{\min(n,m)}\sigma_1(d)\sum_{p=1}^{\min\left(\left\lfloor\frac nd\right\rfloor,\left\lfloor\frac md\right\rfloor\right)}\mu(p)\left\lfloor\dfrac n{dp}\right\rfloor\left\lfloor\dfrac m{dp}\right\rfloor\\ =&\sum_{k=1}^{\min(n,m)}\left\lfloor\dfrac nk\right\rfloor\left\lfloor\dfrac mk\right\rfloor\sum_{d\mid k}\sigma_1(d)\mu\left(\dfrac kd\right) \end{aligned} \]考虑 \(a\):发现对答案起作用的只是 \(\sigma_1(d)\le a\) 的 \(d\)
把 \(a\) 的询问从小到大排序
\(a\) 每增大就会造成一些 \(\sigma_1(d)\) 起作用
倍数筛找到受影响的 \(k\),单点加
查询的时候是数论分块,需要区间查
这个东西使用树状数组维护
标签:lfloor,right,题解,sum,rfloor,数表,sigma,left From: https://www.cnblogs.com/laijinyi/p/18148391