ARC221A 学习笔记

又是要上课打不了啊。。。

一句话题意:给定正整数 \(n,a,b,c,d\),求

\[S=\sum_{i=1}^n \gcd(ai+b,ci+d) \]

的值。

由于

\[\gcd(x,y)=\sum_{d \mid \gcd(x,y)} \varphi(d) \]

从而原式可转化为

\[S = \sum_{d\ge 1} \varphi(d)\cdot \#\{1\le i\le n : d\mid ai+b,\; d\mid ci+d\} \]

由于 \(d\) 同时整除 \(ai+b\)\(ci+d\),则根据裴蜀定理相关结论,\(d\) 也整除其线性组合,即

\[d \mid c(ai+b)-a(ci+d)=bc-ad \]

\(k=bc-ad\),则 \(d \mid k\)


对于 \(k=0\) 的情况,即 \(bc=ad\),记 \(g=\gcd(a,c),\ a'=\frac ag,\ c'=\frac cg\),且 \(\exists t\),使得 \(b=a't,\ d=c't\),此时 \(\gcd(a',c')=1\),于是

\[ai+b=a'gi+a't=a'(gi+t) \]

\[ci+d=c'gi+c't=c'(gi+t) \]

从而

\[\gcd(ai+b,ci+d)=gi+t \]

因此

\[S=\sum_{i=1}^n (gi+t)=\frac12 gn(n+1)+tn \]


对于 \(k \ne 0\) 的情况,记 \(k_0=|k|\),考虑直接枚举 \(k_0\) 的正因子 \(d\),计算满足条件的 \(i\) 的个数 \(f(d)\),则

\[S=\sum_{d \mid k_0} \varphi(d) f(d) \]

接下来考虑如何计算 \(f(d)\),注意到 \(f(d)\) 即为同余方程组

\[\begin{cases} ai+b \equiv 0 \pmod d\\ ci+d \equiv 0 \pmod d \end{cases} \]

在区间 \([1,n]\) 上的解的个数,记 \(g_1=\gcd(a,d)\),若 \(g_1 \nmid b\) 则必然无解,否则我们设 \(a_1=\frac a{g_1},\ b_1=\frac b{g_1},\ d_1=\frac d{g_1}\),则第一个方程可等价于

\[i \equiv -b_1 \cdot a_1^{-1} \pmod d \]

\(i_0=-b_1 \cdot a_1^{-1}\),则 \(i=i_0+td\),代入第二个方程,并记 \(g_2=\gcd(c, g_1)\),可知 \(t\) 满足一个线性同余式,从而 \(t \equiv t_0 \pmod {g_1/g_2}\),于是

\[i=i_0+d_1t_0+\frac{td}{g_3},\ k \in \mathbb{Z} \]

则在 \([1,n]\) 中解的个数显然为

\[f(d)= \begin{cases} \lfloor n/l \rfloor & r=0\\ \lfloor (n - r) / l \rfloor & r \in (0, n]\\ 0 & r>n \end{cases} \]

Submission。

posted @ 2026-06-23 18:25  constexpr_ll  阅读(5)  评论(0)    收藏  举报