初等数论笔记-算法竞赛相关-Ⅳ

一些莫反入门题

  • 1xa,1yb1≤x≤a,1≤y≤b,且gcd(x,y)=dgcd(x,y)=d​​​的二元组的数量 link

Solution.

i=1aj=1b[gcd(i,j)==d]=i=1adj=1bd[gcd(i,j)==1]=x=1ady=1bddgcd(x,y)μ(d)=d=1min(ad,bd)x=1ad2y=1bd2μ(d)=d=1min(ad,bd)μ(d)ad2bd2\begin{aligned} \sum_{i=1}^{a}\sum_{j=1}^{b}[gcd(i,j)==d]&=\sum_{i=1}^{\frac{a}{d}}\sum_{j=1}^{\frac{b}{d}}[gcd(i,j)==1]\\ &=\sum_{x=1}^{\lfloor\frac{a}{d}\rfloor} \sum_{y=1}^{\lfloor\frac{b}{d}\rfloor} \sum_{d|gcd(x,y)}\mu(d)\\ &=\sum_{d=1}^{min(\lfloor\frac{a}{d}\rfloor,\lfloor\frac{b}{d}\rfloor)}\sum_{x=1}^{\lfloor\frac{a}{d^2}\rfloor}\sum_{y=1}^{\lfloor\frac{b}{d^2}\rfloor}\mu(d)\\ &=\sum_{d=1}^{min(\lfloor\frac{a}{d}\rfloor,\lfloor\frac{b}{d}\rfloor)}\mu(d)\lfloor\frac{a}{d^2}\rfloor \lfloor\frac{b}{d^2}\rfloor \end{aligned}

  • 对于给出的 n 个询问,每次求有多少个数对(x,y)(x,y),满足 axbcyda \le x \le b,c \le y \le d,且 gcd(x,y)=k\gcd(x,y) = k​​ link

Solution.

思路同上,注意容斥。

  • 1xN1 \leq x \leq N1yM1 \leq y \leq Mgcd(x,y)\gcd(x, y)为质数的(x,y)(x, y) 有多少对。 link

Solution.

k=1,  kprimemin(N,M)X=1Ny=1M[gcd(x,b)==k]=k=1,  kprimemin(N,M)x=1Nky=1Mkdgcd(x,y)mu(d)=k=1,  kprimemin(N,M)d=1min(Nk,Mk)μ(d)NkMkT=kd=T=1min(N,M)kT,  kprimeμ(Tk)NkMk=T=1min(N,M)NkMkkT,  kprimeμ(Tk)\begin{aligned} \sum_{k=1,\;k\in prime} ^{min(N,M)} \sum_{X=1}^N \sum_{y=1}^M[gcd(x,b)==k]&=\sum_{k=1,\;k\in prime} ^{min(N,M)} \sum_{x=1}^{\lfloor \frac{N}{k}\rfloor} \sum_{y=1}^{\lfloor \frac{M}{k}\rfloor} \sum_{d|gcd(x,y)} mu(d)\\ &=\sum_{k=1,\;k\in prime} ^{min(N,M)}\sum_{d=1}^{min(\lfloor \frac{N}{k}\rfloor,\lfloor \frac{M}{k}\rfloor)}\mu(d) \lfloor \frac{N}{k}\rfloor \lfloor \frac{M}{k}\rfloor\\ 令T=kd\\ &=\sum_{T=1}^{min(N,M)}\sum_{k|T,\;k\in prime} \mu(\frac{T}{k})\lfloor \frac{N}{k}\rfloor \lfloor \frac{M}{k}\rfloor\\ &=\sum_{T=1}^{min(N,M)}\lfloor \frac{N}{k}\rfloor \lfloor \frac{M}{k}\rfloor\sum_{k|T,\;k\in prime} \mu(\frac{T}{k})\\ \end{aligned}

  • 对多组TT​​​,求

i=1nj=1md(ij)\sum_{i=1}^n \sum_{j=1}^md(ij)

link

Solution.

对于d(ij)d(ij),有

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

i=1nj=1md(ij)=i=1nj=1mxiyj[gcd(x,y)==1]=i=1nj=1mxiyjϵ(gcd(x,y))=i=1nj=1mxiyjdgcd(x,y)μ(d)=i=1nj=1mxiyjd=1min(n,m)μ(d)[dgcd(x,y)]=d=1min(n,m)μ(d)i=1nj=1mxiyj[dgcd(x,y)]=d=1min(n,m)μ(d)i=1nj=1m[dgcd(x,y)]nxny=d=1min(n,m)μ(d)x=1ndy=1mdndxndy=d=1min(n,m)μ(d)x=1ndndxy=1mdndy\begin{aligned} \sum_{i=1}^n \sum_{j=1}^md(ij)&=\sum_{i=1}^n \sum_{j=1}^m\sum_{x|i}\sum_{y|j}[gcd(x,y)==1]\\ &=\sum_{i=1}^n \sum_{j=1}^m\sum_{x|i}\sum_{y|j}\epsilon (gcd(x,y))\\ &=\sum_{i=1}^n \sum_{j=1}^m\sum_{x|i}\sum_{y|j}\sum_{d|gcd(x,y)}\mu(d)\\ &=\sum_{i=1}^n \sum_{j=1}^m\sum_{x|i}\sum_{y|j} \sum_{d=1}^{min(n,m)}\mu(d)[d|gcd(x,y)]\\ &=\sum_{d=1}^{min(n,m)}\mu(d) \sum_{i=1}^n \sum_{j=1}^m\sum_{x|i}\sum_{y|j}[d|gcd(x,y)]\\ &=\sum_{d=1}^{min(n,m)}\mu(d) \sum_{i=1}^n \sum_{j=1}^m[d|gcd(x,y)]\lfloor\frac{n}{x}\rfloor \lfloor \frac{n}{y}\rfloor\\ &=\sum_{d=1}^{min(n,m)}\mu(d)\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{y=1}^{\lfloor\frac{m}{d}\rfloor}\lfloor\frac{n}{dx}\rfloor \lfloor \frac{n}{dy}\rfloor\\ &=\sum_{d=1}^{min(n,m)}\mu(d)\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}\lfloor\frac{n}{dx}\rfloor\sum_{y=1}^{\lfloor\frac{m}{d}\rfloor} \lfloor \frac{n}{dy}\rfloor \end{aligned}\\

  • i=1nj=1ngcd(i,j)\sum_{i=1}^n\sum_{j=1}^n gcd(i,j)

link

Solution.

欧拉反演:

i=1nj=1ngcd(i,j)=i=1nj=1ndgcd(i,j)ϕ(d)=d=1nϕ(d)nd2\begin{aligned} \sum_{i=1}^n\sum_{j=1}^n gcd(i,j)&=\sum_{i=1}^n\sum_{j=1}^n\sum_{d|gcd(i,j)}\phi(d)\\ &=\sum_{d=1}^n \phi(d) \lfloor\frac{n}{d}\rfloor^2 \end{aligned}

  • 对于序列ai,bia_i,b_i,求满足abx=baya_{b_x}=b_{a_y}gcd(x,y)==1gcd(x,y)==1​​的有序对数量 link

Solution.

经过映射可转换为对于序列ai,bia'_i,b'_i,求满足ax=bya'_{x}=b'_{y}gcd(x,y)==1gcd(x,y)==1的有序对数量

我们记f(n)=[gcd(xy)==n]f(n)=[gcd(x,y)==n]​​的数量​,再记F(n)=nNf(N)F(n)=\sum_{n|N}f(N)

那么由莫比乌斯倍数反演

f(n)=nNF(N)μ(N/n)f(n)=\sum_{n|N}F(N)\mu(N/n)

f(1)=F(N)μ(N)f(1)=\sum F(N)\mu(N)

即求

F(k)=kn[gcd(x,y)==n]F(k)=\sum_{k|n}[gcd(x,y)==n]

杜教筛入门

杜教筛通常用低于线性的时间来解决一类积性函数的前缀和问题

  i=1n(fg)(i)=y=1nx=1nyf(x)g(y)=y=1ng(y)x=1nyf(x)=y=1ng(y)S(n/y)=g(1)S(n)+y=2ng(y)S(n/y)\begin{aligned} &\quad \; \sum_{i=1}^n(f*g)(i)\\ &=\sum_{y=1}^n\sum_{x=1}^{\lfloor \frac{n}{y}\rfloor}f(x)g(y)\\ &=\sum_{y=1}^n g(y)\sum_{x=1}^{\lfloor \frac{n}{y}\rfloor}f(x)\\ &=\sum_{y=1}^n g(y) S(\lfloor n/y\rfloor)\\ &=g(1)S(n)+\sum_{y=2}^n g(y) S(\lfloor n/y\rfloor) \end{aligned}

得到

g(1)S(n)=i=1n(fg)(i)y=2ng(y)S(n/y)g(1)S(n)= \sum_{i=1}^n(f*g)(i)-\sum_{y=2}^n g(y) S(\lfloor n/y\rfloor)

在此基础上,如果用线性筛预处理出前n23n^{\frac23}​项的值,可优化到O(n23)O(n^{\frac23})

e.g.

μ\mu​​的前缀和,注意到μ1=ϵ\mu*1=\epsilon​,令g=1g=1​​,则有​​

S(n)=i=1nϵ(i)y=2nS(n/y)=1y=2nS(n/y)S(n)=\sum_{i=1}^n\epsilon(i)-\sum_{y=2}^nS(\lfloor n/y\rfloor)=1-\sum_{y=2}^nS(\lfloor n/y\rfloor)

ϕ\phi的前缀和,注意到ϕ1=Id\phi*1=Id,令g=1g=1,则有

S(n)=n(n+1)2y=2nS(n/y)S(n)=\frac{n(n+1)}{2}-\sum_{y=2}^nS(\lfloor n/y\rfloor)

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 JingyiQu
  • 访问人数: | 浏览次数:

如果这篇博客帮助到你,可以请我喝一杯咖啡~

支付宝
微信