\(t\) 组询问,给定 \(a,b,c,d,k\),查询 \(\sum_{x=a}^b\sum_{y=c}^d[\gcd(x,y)=k]\),\(t,a,b,c,d,k\le5\times10^4\)
先拆为四个
\[\sum_{x=1}^n\sum_{y=1}^m[\gcd(x,y)=k]
\]
等于
\[\sum_{x=1}^{\normalsize \lfloor\frac nk\rfloor}\sum_{y=1}^{\normalsize\lfloor\frac mk\rfloor}\varepsilon(\gcd(x,y))
\]
令 \(N=\lfloor\frac nk\rfloor,M=\lfloor\frac mk\rfloor\)
则上式转化为
\[\begin{aligned}
&\sum_{x=1}^N\sum_{y=1}^M\varepsilon(\gcd(x,y))\\
=&\sum_{x=1}^N\sum_{y=1}^M\sum_{d\mid x,d\mid y}\mu(d)\\
=&\sum_{d=1}^{\min(N,M)}\mu(d)\sum_{d\mid x}\sum_{d\mid y}1\\
=&\sum_{d=1}^{\min(N,M)}\mu(d)(N/d)(M/d)\\
\end{aligned}\]
显然可以数论分块
时间复杂度 \(O\left(\sum\sqrt{\normalsize\frac{\min(n,m)}k}\right)\)
代码
给定 \(n,m\),求 \(\sum_{i=1}^n\sum_{j=1}^m\operatorname{lcm}(n,m)\),\(n,m\le10^7\)
化式子:
\[{\begin{aligned}
&\sum_{i=1}^n\sum_{j=1}^m\operatorname{lcm}(i,j)\\
=&\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{\gcd(i,j)}\\
=&\sum_{i=1}^n\sum_{j=1}^m\sum_{d\mid i,d\mid j}[\gcd(i,j)=d]\frac{ij}{d}\\
=&\sum_{i=1}^n\sum_{j=1}^m\sum_{d\mid i,d\mid j}\left[\gcd\left(\frac id,\frac jd\right)=1\right]\frac{ij}{d}\\
=&\sum_{d=1}^{\min(n,m)}\sum_{d\mid i}\sum_{d\mid j}\left[\gcd\left(\frac id,\frac jd\right)=1\right]\frac{ij}{d}\\
=&\sum_{d=1}^{\min(n,m)}\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}[\gcd(i,j)=1]ijd\\
=&\sum_{d=1}^{\min(n,m)}d\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}\sum_{D\mid i,D\mid j}\mu(D)ij\\
=&\sum_{d=1}^{\min(n,m)}d\sum_{D=1}^{\min(n/d,m/d)}\mu(D)\sum_{D\mid i,i\le n/d}i\sum_{D\mid j,m/d}j\\
=&\sum_{d=1}^{\min(n,m)}d\sum_{D=1}^{\min(n/d,m/d)}\mu(D)\sum_{i=1}^{n/(dD)}\sum_{j=1}^{m/(dD)}ijD^2\\
=&\sum_{d=1}^{\min(n,m)}d\sum_{D=1}^{\min(n/d,m/d)}\mu(D)D^2\sum_{i=1}^{n/(dD)}i\sum_{j=1}^{m/(dD)}j\\
\end{aligned}}\]
令 \(f(x)=\frac{x(x+1)}2\),\(F(n,m)=\sum_{D=1}^{\min(n,m)}\mu(D)D^2 f(n/D)f(m/D)\)
则上式等于 \(\sum_{d=1}^{\min(n,m)}d F(\lfloor\frac nd\rfloor,\lfloor\frac md\rfloor)\)
显然可以预处理加数论分块套数论分块解决
时间复杂度 \(O(n+m)\)
代码
给定 \(T\) 组 \(n,m\),求出 \(\sum_{i=1}^n\sum_{j=1}^m d(ij)\),其中 \(d(x)\) 为 \(x\) 的因子数量,\(T,n,m\le5\times10^4\)
由于 \(d(ij)=\sum_{x\mid i}\sum_{y\mid j}\varepsilon(\gcd(x,y))\)
可得
\[{\begin{aligned}
&\sum_{i=1}^n\sum_{j=1}^m d(ij)\\
=&\sum_{i=1}^n\sum_{j=1}^m \sum_{x\mid i}\sum_{y\mid j}\varepsilon(\gcd(x,y))\\
=&\sum_{i=1}^n\sum_{j=1}^m \sum_{x\mid i}\sum_{y\mid j}\sum_{d\mid x,d\mid y}\mu(d)\\
=&\sum_d\sum_{d\mid x}\sum_{d\mid y} \sum_{x\mid i}\sum_{y\mid j}\mu(d)\\
=&\sum_d\mu(d)\sum_{d\mid x}(n/x)\sum_{d\mid y}(m/y)\\
=&\sum_d\mu(d)\sum_{x=1}^{n/d}((n/d)/x)\sum_{y=1}^{m/d}((m/d)/y)\\
\end{aligned}}\]
预处理出所有 \(s_x=\sum_{i=1}^x(x/i)\),则上式容易数论分块解决
时间复杂度 \(O(\max n+\sum\sqrt n)\)(假设 \(n,m\) 同阶)
代码
对于 \(a_{1\sim n}\),定义 \(f(k)=\gcd_{i=1}^{n=k+1}\{\sum_{j=i}^{j+k-1}a_j\}\)。定义 \(a_{1\sim n}\) 是好的当且仅当 \(\forall 1\le i<j\le n,f(i)\ne f(j)\)。给定 \(m\),求出仅包含数字 \(1\sim m\) 的好的序列的数量取模。\(m\le10^6\),多测 \(T\le3\times10^5\)
可证 \(a\) 是好的当且仅当 \(a\) 单谷 且 将其从大到小排序后其任意前缀 \(\gcd\) 互不相同
先考虑其弱化版,\(\sum m\le10^5\) 的情况(即 CF2039F1 Shohag Loves Counting (Easy Version)),对于每组 \(m\) 依次求解
对于一个从大到小排序了的 \(a_{1\sim n}\),其排序前有 \(2^{n-1}\) 种可能(每个 \(a_{1\sim {n-1}}\) 都可以在 \(a_n\) 左侧或右侧)
令 \(f_{i,j}\) 为排序后的 \(a\) 前缀 \(\gcd\) 等于 \(i\),长为 \(j\) 的方案数(显然 \(j\) 为 \(O(\log n)\) 的)
由于要求序列递减,因此从 \(n\) 到 \(1\) 加入最后一个数 \(x\),考虑其对整个 \(f\) 数组的贡献
显然只会影响 \(i\mid x\) 的 \(f_{i,j}\),其余不变
令 \(f'\) 为修改后的 \(f\),则有:
\[f'_{x,1}\leftarrow 1
\]
\[f'_{i,j}\leftarrow f_{i,j}+\sum_{k>1}[\gcd(ik,x)=i]f_{ik,j-1}
\]
答案为 \(\sum_i\sum_j2^{j-1}f_{i,j}\)
直接做 为 \(O(m^2+\sum m^{3/2}\log^2 n)\) 的(预处理了 \(\gcd\))
发现最后 \(2^{j-1}\) 的系数可以移到转移中:
\[f'_{x,1}\leftarrow 1
\]
\[f'_{i,j}\leftarrow f_{i,j}+\sum_{k>1}[\gcd(ik,x)=i]2f_{ik,j-1}
\]
答案为 \(\sum_i\sum_jf_{i,j}\)
此时可以省略第二维,新的 \(f_i\) 存储 \(\sum_j f_{i,j}\),转移为
\[f'_x\leftarrow f'_x+1
\]
\[f'_{i}\leftarrow f_{i}+\sum_{k>1}[\gcd(ik,x)=i]2f_{ik}
\]
答案为 \(\sum f_i\)
这样 时间复杂度为 \(O(\sum n^{3/2}\log^2 n)\)
令 \(s_i=\sum_{i\mid j}f_j\),则第二种转移变为:
\[{\begin{aligned}
f'_i=&f_i+\sum_{k>1}[\gcd(ik,x)=i]2f_{ik}\\
=&f_i+\left(\sum_k [\gcd(ik,x)=i]2f_{ik}\right)-2f_i\\
=&f_i+2\left(\sum_k \left[\gcd\left(k,\frac xi\right)=1\right]f_{ik}\right)-2f_i\\
=&f_i+2\left(\sum_k\sum_{d\mid k,d\mid{\frac xi}} \mu(d)f_{ik}\right)-2f_i\\
=&f_i+2\left(\sum_{d\mid{\frac xi}}\mu(d)\sum_{d\mid k}f_{ik}\right)-2f_i\\
=&f_i+2\left(\sum_{d\mid{\frac xi}}\mu(d)\sum_{(di)\mid k}f_{k}\right)-2f_i\\
=&f_i+2\left(\sum_{d\mid{\frac xi}}\mu(d)s_{di}\right)-2f_i\\
\end{aligned}}\]
先根据旧的 \(f\) 求出新的 \(f_i\) 相对旧 \(f_i\) 的增量,记为 \(tmp_i\),然后用 \(tmp_i\) 统一更新 \(f\) 和 \(s\)
预处理所有数的因数列表,则时间复杂度为 \(O(\sum n^{1+\varepsilon})\)(因为 \(d(n)=n^{\varepsilon}\))
这样足够通过 简单版 了
考虑如何解决原问题
令 \(\vec v_x\) 为加入 \(x\) 后 \(f\),\(tmp\),\(s\) 三个数组和 \(1\) 依次拼接起来得到的向量
则 \(\vec v_x\) 到 \(\vec v_{x-1}\) 的转移可以写为一个矩阵
矩阵的转置有性质 \(AB=(B^TA^T)^T\)
因此若将初始向量和每个转移矩阵转置,则原本 \(n\sim 1\) 的递推可以变为 \(1\sim n\) 的正向递推,这样可以一次递推求出 \(m=1\sim 10^6\) 的答案
具体地,定义一个变量 \(one\) 表示原本 \(1\) 的位置,初始 \(s_1=1\)。在之前的算法的基础上,将外层循环顺序改为 \(1\sim n\),循环内各子语句顺序倒置,原本形如 \(x\leftarrow ay\) 的语句变为 \(y\leftarrow ax\)。\(m=x\) 的答案即为该次循环结束后 \(one\) 的值
时间复杂度 \(O(m\log^2 m+T)\)
代码
参考
给定 \(T\) 组 \(A,B,C\),每组对 \(t=0/1/2\) 分别求出 \(\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\left(\dfrac{\operatorname{lcm}(i,j)}{\gcd(i,k)}\right)^{f(t)}\),其中 \(f(0)=1\),\(f(1)=ijk\),\(f(2)=\gcd(i,j,k)\),答案对 \(p\) 取模,\(T=70,A,B,C\le10^5\),\(p\) 为足够大的质数
由于
\[\begin{aligned}
&\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\left(\frac{\text{lcm}(i,j)}{\gcd(i,k)}\right)^{f(t)}\\
=&\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\left(\frac{ij}{\gcd(i,j)\gcd(i,k)}\right)^{f(t)}\\
=&\frac{\left(\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^Ci^{f(t)}\right)\left(\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^Cj^{f(t)}\right)}{\left(\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\gcd(i,j)^{f(t)}\right)\left(\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\gcd(i,k)^{f(t)}\right)}
\end{aligned}\]
因此转化为两个子问题,求出 \(\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^Ci^{f(t)}\) 和 \(\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\gcd(i,j)^{f(t)}\)
令 \(\text{adn}(x)=\frac{x(x+1)}2\)
接下来对于 \(t=0/1/2\) 分别解决这两个问题
t = 0
子问题 1
显然
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C i=(A!)^{BC}
\]
预处理阶乘即可(注意指数中对 \(p-1\) 取模,下同)
子问题 2
\[\def\L{\left}\def\R{\right}\def\AB{\min(A,B)}
\begin{aligned}
&\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\gcd(i,j)\\
=&\L(\prod_{i=1}^A\prod_{j=1}^B\gcd(i,j)\R)^C\\
=&\L(\prod_{d=1}^{\AB}\prod_{d\mid i}\prod_{d\mid j}d^{\L[\gcd\L(\frac id,\frac jd\R)=1\R]}\R)^C\\
=&\L(\prod_{d=1}^{\AB}d^{\sum_{d\mid i}\sum_{d\mid j}\L[\gcd\L(\frac id,\frac jd\R)=1\R]}\R)^C\\
=&\L(\prod_{d=1}^{\AB}d^{\sum_{i=1}^{A/d}\sum_{j=1}^{B/d}\sum_{D\mid i,D\mid j}\mu(D)}\R)^C\\
=&\L(\prod_{d=1}^{\AB}d^{\sum_{D=1}^{\AB/d}\mu(D)(A/(dD))(B/(dD))}\R)^C\\
=&\L(\prod_{d=1}^{\AB}\prod_{D=1}^{\AB/d}d^{\mu(D)(A/(dD))(B/(dD))}\R)^C\\
=&\L(\prod_{T=1}^{\AB}\prod_{d\mid T}d^{\mu\L(\frac Td\R)(A/T)(B/T)}\R)^C\\
=&\L(\prod_{T=1}^{\AB}\L(\prod_{d\mid T}d^{\mu\L(\frac Td\R)}\R)^{(A/T)(B/T)}\R)^C\\
\end{aligned}\]
可以 \(O(n\log n)\) 预处理 \(Tp\) 数组,\({Tp}_T=\prod_{d\mid T}d^{\mu\left(\frac Td\right)}\),每次询问数论分块
t = 1
子问题 1
显然
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C i^{ijk}=\left(\prod_{i=1}^A i^i\right)^{\text{adn}(B)\text{adn}(C)}
\]
预处理 \(i^i\) 的前缀积即可
子问题 2
显然
\[\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C\gcd(i,j)^{ijk}=\left(\prod_{i=1}^A\prod_{j=1}^B \gcd(i,j)^{ij}\right)^{\text{adn}(C)}
\]
而
\[\def\L{\left}\def\R{\right}
\begin{aligned}
&\prod_{i=1}^A\prod_{j=1}^B \gcd(i,j)^{ij}\\
=&\prod_{d=1}^{\min(A,B)}d^{\sum_{d|i}\sum_{d|j}[\gcd(\frac id,\frac jd)=1]ij}\\
=&\prod_{d=1}^{\min(A,B)}d^{ d^2\sum_{i=1}^{A/d}\sum_{j=1}^{B/d}[\gcd(i,j)=1]ij}\\
=&\prod_{d=1}^{\min(A,B)}d^{ d^2\sum_{D=1}^{\min(A/d,B/d)}\mu(D)D^2\text{adn}(A/(dD))\text{adn}(B/(dD))}\\
\end{aligned}\]
令 \(Tmp(A,B)=\sum_{D=1}^{\min(A,B)}\mu(D)D^2\text{adn}(A/D)\text{adn}(B/D)\)(容易通过预处理加数论分块单次 \(O(\sqrt A+\sqrt B)\) 计算)
则原式 \(=\prod_{d=1}^{\min(A,B)}\left(d^{d^2}\right)^{Tmp(A/d,B/d)}\),可以再次数论分块实现
t = 2
子问题 1
\[\begin{aligned}
&\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C i^{\gcd(i,j,k)}\\
=&\prod_{i=1}^A i^{\sum_{d|i}d\sum_{j=1}^B\sum_{k=1}^C[\gcd(i,j,k)=d]}\\
=&\prod_{i=1}^A i^{\sum_{d|i}d\sum_{d|j}\sum_{d|k}[\gcd(\frac id,\frac jd,\frac kd)=1]}\\
=&\prod_{i=1}^A i^{\sum_{d|i}d\sum_{d|j}\sum_{d|k}\sum_{D|\frac id,D|\frac jd,D|\frac kd}\mu(D)}\\
=&\prod_{i=1}^A i^{\sum_{D\mid i}\sum_{(dD)\mid i}d\sum_{(dD)\mid j}\sum_{(dD)\mid k}\mu(D)}\\
=&\prod_{i=1}^A i^{\sum_{D\mid i}\sum_{(dD)\mid i}d\mu(D)(B/(dD))(C/(dD))}\\
=&\prod_{d}\prod_{D}\prod_{(dD)\mid i} i^{d\mu(D)(B/(dD))(C/(dD))}\\
=&\prod_{d}\prod_{D}\prod_{i=1}^{A/(dD)} (idD)^{d\mu(D)(B/(dD))(C/(dD))}\\
=&\prod_T\prod_{d\mid T}\prod_{i=1}^{A/T} (iT)^{d\mu(\frac Td)(B/T)(C/T)}\\
=&\prod_T\prod_{d\mid T}\left(\prod_{i=1}^{A/T} i\times \prod_{i=1}^{A/T} T\right)^{d\mu(\frac Td)(B/T)(C/T)}\\
=&\prod_T\prod_{d\mid T}\left((A/T)!\times T^{A/T}\right)^{d\mu(\frac Td)(B/T)(C/T)}\\
=&\prod_T\left((A/T)!\times T^{A/T}\right)^{\sum_{d\mid T} d\mu(\frac Td)(B/T)(C/T)}\\
=&\prod_T\left((A/T)!\times T^{A/T}\right)^{\sum_{d\mid T} \varphi(T)(B/T)(C/T)}\\
\end{aligned}\]
预处理后直接分块即可
子问题 2
\[\begin{aligned}
&\prod_{i=1}^A\prod_{j=1}^B\prod_{k=1}^C \gcd(i,j)^{\gcd(i,j,k)}\\
=&\prod_{d}\prod_{d|i}\prod_{d|j}\prod_{d|k} \gcd(i,j)^{ d[\gcd(i,j,k)=d]}\\
=&\prod_{d}\prod_{i=1}^{A/d}\prod_{j=1}^{B/d}\prod_{k=1}^{C/d} \gcd(id,jd)^{ d[\gcd(i,j,k)=1]}\\
=&\prod_{d}\prod_{i=1}^{A/d}\prod_{j=1}^{B/d}\prod_{k=1}^{C/d} \gcd(id,jd)^{ d\sum_{D|i,D|j,D|k}\mu(D)}\\
=&\prod_{d}\prod_{i=1}^{A/d}\prod_{j=1}^{B/d}\prod_{k=1}^{C/d}\prod_{D\mid i,D\mid j,D\mid k} \gcd(id,jd)^{d\mu(D)}\\
=&\prod_{d}\prod_{i=1}^{A/d}\prod_{j=1}^{B/d}\prod_{k=1}^{C/d}\prod_{D\mid i,D\mid j,D\mid k} (d\gcd(i,j))^{d\mu(D)}\\
=&\prod_d\prod_D\prod_{i=1}^{A/(dD)}\prod_{j=1}^{B/(dD)}\prod_{k=1}^{C/(dD)} (dD\gcd(i,j))^{d\mu(D)}\\
=&\prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T}\prod_{k=1}^{C/T} (T\gcd(i,j))^{d\mu(\frac Td)}\\
=&\prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T} (T\gcd(i,j))^{d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T} T^{d\mu(\frac Td)(C/T)}\times \prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T} \gcd(i,j)^{d\mu(\frac Td)(C/T)}\\
\end{aligned}\]
其中前一项
\[\begin{aligned}
&\prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T} T^{d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T} T^{d\mu(\frac Td)(A/T)(B/T)(C/T)}\\
=&\prod_T\prod_{d|T} T^{\varphi(T)(A/T)(B/T)(C/T)}\\
=&\prod_T\left(\prod_{d|T} T^{\varphi(T)}\right)^{(A/T)(B/T)(C/T)}\\
\end{aligned}\]
显然可以预处理加数论分块
后一项
\[\begin{aligned}
&\prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T} \gcd(i,j)^{d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T}\prod_{D\mid i,D\mid j} D^{[\gcd(i,j)=D]d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{i=1}^{A/T}\prod_{j=1}^{B/T}\prod_{D\mid i,D\mid j} D^{[\gcd(\frac iD,\frac jD)=1]d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{D}\prod_{D\mid i,i\le A/T}\prod_{D\mid j,j\le B/T} D^{[\gcd(\frac iD,\frac jD)=1]d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{D}\prod_{i=1}^{A/(DT)}\prod_{j=1}^{B/(DT)} D^{[\gcd(i,j)=1]d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{D}\prod_{i=1}^{A/(DT)}\prod_{j=1}^{B/(DT)} D^{\sum_{E\mid i,E\mid j}\mu(E)d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{D}\prod_E\prod_{E\mid i,i\le A/(DT)}\prod_{E\mid j,j\le B/(DT)} D^{\mu(E)d\mu(\frac Td)(C/T)}\\
=&\prod_T\prod_{d|T}\prod_{D}\prod_E D^{\mu(E)d\mu(\frac Td)(A/(DET))(B/(DET))(C/T)}\\
=&\prod_T\prod_{D}\prod_E D^{\mu(E)\varphi(T)(A/(EDT))(B/(EDT))(C/T)}\\
=&\prod_T\prod_F\prod_{D\mid F}D^{\mu(\frac FD)\varphi(T)(A/(FT))(B/(FT))(C/T)}\\
\end{aligned}\]
之前预处理了 \({Tp}_T=\prod_{d\mid T}d^{\mu\left(\frac Td\right)}\),带入可得
\[\begin{aligned}
&\prod_T\prod_F\prod_{D\mid F}D^{\mu(\frac FD)\varphi(T)(A/(FT))(B/(FT))(C/T)}\\
=&\prod_T\prod_F{Tp}_F^{^{\varphi(T)(A/(FT))(B/(FT))(C/T)}}\\
=&\prod_T\left(\prod_F{Tp}_F^{(A/(FT))(B/(FT))}\right)^{\varphi(T) (C/T)}\\
\end{aligned}\]
令 \(Ftp(n,m)=\prod_F{Tp}_F^{^{(n/F)(m/F)}}\),则上式等于 \(\prod_T\left(Ftp(A/T,B/T)\right)^{^{\varphi(T) (C/T)}}\),容易通过数论分块套数论分块解决
时间复杂度
假定 \(A,B,C\) 同阶,\(n\) 为各组数据中 \(A,B,C\) 的最大值,则总时间复杂度为:
\[O\left(n\log n+T\left(\left(\sum_{i=1}^{\sqrt A}\sqrt i+\sum_{i=1}^{\sqrt A}\sqrt\frac Ai\right)\log p+A\right)\right)
\]
其中 \(\sum_{i=1}^{\sqrt A}\sqrt i\) 显然不超过 \(O(A^{3/4})\)
而
\[\begin{aligned}
&\sum_{i=1}^{\sqrt A}\sqrt\frac Ai\\
=&\sum_{i=1}^{\sqrt A}\frac{\sqrt A}{\sqrt i}\\
=&\sum_{j=1}^{A^{1/4}}\frac{\sqrt A}j\sum_{i=1}^{\sqrt A}[j\le \sqrt i<j+1]\\
=&\sum_{j=1}^{A^{1/4}}\frac{\sqrt A}j\sum_{i=1}^{\sqrt A}[j^2\le i<j^2+2j+1]\\
=&\sum_{j=1}^{A^{1/4}}\frac{\sqrt A}j\cdot O(j)\\
=&\sum_{j=1}^{A^{1/4}}O(\sqrt A)\\
=&O(A^{3/4})\\
\end{aligned}\]
因此总时间复杂度为 \(O(n\log n+TA^{3/4}\log p)\)
代码
参考
给定 \(n,m,k\),求出 \(\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k\),多次 \(T\le2000\),\(n,m,k\le5\times10^6\)
根据一般套路,原式可化为 \(\sum_{T=1}^{\min(n,m)}(n/T)(m/T)\sum_{d\mid T}d^k\mu(\frac Td)\)
令 \(g(T)=\sum_{d\mid T}d^k\mu(\frac Td)\),则 \(g=\text{id}_k\ast \mu\)
由于 \(\text{id}_k\) 和 \(\mu\) 都是积性函数,根据狄利克雷卷积的性质,\(g\) 也是积性函数,因此可以线性筛
代码
给定 \(t\) 组 \(A,B,C,D,E\),其中 \(t\le2000,1\le A,B,C,D,E\le5\times10^7\),分别求出以下式子的值
\[\def\lcm{\operatorname{{lcm}}}
\sum_{a=1}^A\sum_{b=1}^B\sum_{c=1}^C\sum_{d=1}^D\sum_{e=1}^E\frac{\prod_{[x,y,z]}\gcd(x,y,z)}{(\gcd_{[x,y]}\lcm(x,y))^3\gcd_{[x,y,z]}\lcm(x,y,z)}
\]
其中 \([x,y,z]\) 表示取遍 \(\{a,b,c,d,e\}\) 的大小为三的子集,\([x,y]\) 表示取遍大小为二的子集
考虑化简求和中的分式
实际上其等于 \(\gcd(a,b,c,d,e)^6\),证明需要分别考虑每个质因子,将 \(\gcd\) 和 \(\operatorname{lcm}\) 转化为 \(\min\) 和 \(\max\),然后假定五个数中该质因子幂次的顺序,化简后即可证
于是转化为求
\[\sum_{T=1}^{\min(A,B,C,D,E)}\mu(T)(A/T)(B/T)(C/T)(D/T)(E/T)\sum_{f\mid T}f^6\mu\left(\frac Tf\right)
\]
数论分块即可,时间复杂度 \(O(V+t\sqrt V)\)
代码
题单
\(\text{vjudge}\):Number Theory 1,pw: edgeedgeweloveyou
\(\text{luogu}\):24.12.11 math1
参考
- \(\text{12.11 math1.pdf \; \;by Tx\_Lcy}\)
- 莫比乌斯反演 oi wiki