我是万万没想到2022年了我居然还有机会写题解……
题目大意
求 ∑ i = 1 n gcd ( ⌊ i 3 ⌋ , i ) m o d 998244353 \displaystyle\sum_{i=1}^n\gcd(\lfloor\sqrt[3]{i}\rfloor,i)\bmod 998244353 i=1∑ngcd(⌊3i⌋,i)mod998244353。
共有 T T T次询问, 1 ≤ T ≤ 11 1\le T\le 11 1≤T≤11, 1 ≤ n ≤ 1 0 21 1\le n\le 10^{21} 1≤n≤1021。
思路
注意到
n
n
n的上限
1
0
21
10^{21}
1021非常大(甚至爆了long long
),枚举
i
i
i显然是不可行的。但是式子中出现了
⌊
i
3
⌋
\lfloor\sqrt[3]{i}\rfloor
⌊3i⌋,如果枚举
⌊
i
3
⌋
\lfloor\sqrt[3]{i}\rfloor
⌊3i⌋,上限就变成了
1
0
7
10^7
107,复杂度刚好可以接受。因此初步猜测每次询问的复杂度为
O
(
n
3
)
O(\sqrt[3]{n})
O(3n)。
令 ⌊ i 3 ⌋ = k \lfloor\sqrt[3]{i}\rfloor=k ⌊3i⌋=k,得 k ≤ i 3 < k + 1 k\le\sqrt[3]{i}<k+1 k≤3i<k+1,即 k 3 ≤ i < ( k + 1 ) 3 k^3\le i<(k+1)^3 k3≤i<(k+1)3,因此原式化为
∑ i = 1 n gcd ( ⌊ i 3 ⌋ , i ) = ∑ k = 1 ⌊ n 3 ⌋ ∑ i = k 3 min { ( k + 1 ) 3 − 1 , n } gcd ( k , i ) \sum_{i=1}^n\gcd(\lfloor\sqrt[3]{i}\rfloor,i)=\sum_{k=1}^{\lfloor\sqrt[3]{n}\rfloor}\sum_{i=k^3}^{\min\{(k+1)^3-1,n\}}\gcd(k,i) i=1∑ngcd(⌊3i⌋,i)=k=1∑⌊3n⌋i=k3∑min{(k+1)3−1,n}gcd(k,i)
k = ⌊ n 3 ⌋ k=\lfloor\sqrt[3]{n}\rfloor k=⌊3n⌋时, i i i不能超过 n n n,所以不能取遍 k 3 k^3 k3到 ( k + 1 ) 3 − 1 (k+1)^3-1 (k+1)3−1的值,需要单独处理。因此将上式中的 min \min min展开:
∑ k = 1 ⌊ n 3 ⌋ − 1 ∑ i = k 3 ( k + 1 ) 3 − 1 gcd ( k , i ) + ∑ i = ⌊ n 3 ⌋ 3 n gcd ( ⌊ n 3 ⌋ , i ) \sum_{k=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\sum_{i=k^3}^{(k+1)^3-1}\gcd(k,i)+\sum_{i=\lfloor\sqrt[3]{n}\rfloor^3}^n\gcd(\lfloor\sqrt[3]{n}\rfloor,i) k=1∑⌊3n⌋−1i=k3∑(k+1)3−1gcd(k,i)+i=⌊3n⌋3∑ngcd(⌊3n⌋,i)
这里需要使用一个结论: ∑ i = 1 n gcd ( a , i ) = ∑ T ∣ a ⌊ n T ⌋ φ ( T ) \displaystyle\sum_{i=1}^n\gcd(a,i)=\sum_{T|a}\left\lfloor\dfrac{n}{T}\right\rfloor\varphi(T) i=1∑ngcd(a,i)=T∣a∑⌊Tn⌋φ(T)。推导过程放在最后。
于是对上式进一步化简。前一部分化为
∑ k = 1 ⌊ n 3 ⌋ − 1 [ ∑ i = 1 ( k + 1 ) 3 − 1 gcd ( k , i ) − ∑ i = 1 k 3 − 1 gcd ( k , i ) ] = ∑ k = 1 ⌊ n 3 ⌋ − 1 [ ∑ T ∣ k ⌊ ( k + 1 ) 3 − 1 T ⌋ φ ( T ) − ∑ T ∣ k ⌊ k 3 − 1 T ⌋ φ ( T ) ] = ∑ k = 1 ⌊ n 3 ⌋ − 1 ∑ T ∣ k φ ( T ) [ ⌊ ( k + 1 ) 3 − 1 T ⌋ − ⌊ k 3 − 1 T ⌋ ] = ∑ k = 1 ⌊ n 3 ⌋ − 1 ∑ T ∣ k φ ( T ) [ ( k 3 T + 3 k 2 T + 3 k T ) − ( k 3 T + ⌊ − 1 T ⌋ ) ] = ∑ k = 1 ⌊ n 3 ⌋ − 1 ∑ T ∣ k φ ( T ) [ 3 k 2 T + 3 k T + 1 ] \begin{aligned} &\sum_{k=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\left[\sum_{i=1}^{(k+1)^3-1}\gcd(k,i)-\sum_{i=1}^{k^3-1}\gcd(k,i)\right]\\ =&\sum_{k=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\left[\sum_{T|k}\left\lfloor\dfrac{(k+1)^3-1}{T}\right\rfloor\varphi(T)-\sum_{T|k}\left\lfloor\dfrac{k^3-1}{T}\right\rfloor\varphi(T)\right]\\ =&\sum_{k=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\sum_{T|k}\varphi(T)\left[\left\lfloor\dfrac{(k+1)^3-1}{T}\right\rfloor-\left\lfloor\dfrac{k^3-1}{T}\right\rfloor\right]\\ =&\sum_{k=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\sum_{T|k}\varphi(T)\left[\left(\dfrac{k^3}{T}+3\dfrac{k^2}{T}+3\dfrac{k}{T}\right)-\left(\dfrac{k^3}{T}+\left\lfloor-\dfrac{1}{T}\right\rfloor\right)\right]\\ =&\sum_{k=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\sum_{T|k}\varphi(T)\left[3\dfrac{k^2}{T}+3\dfrac{k}{T}+1\right] \end{aligned} ====k=1∑⌊3n⌋−1⎣ ⎡i=1∑(k+1)3−1gcd(k,i)−i=1∑k3−1gcd(k,i)⎦ ⎤k=1∑⌊3n⌋−1⎣ ⎡T∣k∑⌊T(k+1)3−1⌋φ(T)−T∣k∑⌊Tk3−1⌋φ(T)⎦ ⎤k=1∑⌊3n⌋−1T∣k∑φ(T)[⌊T(k+1)3−1⌋−⌊Tk3−1⌋]k=1∑⌊3n⌋−1T∣k∑φ(T)[(Tk3+3Tk2+3Tk)−(Tk3+⌊−T1⌋)]k=1∑⌊3n⌋−1T∣k∑φ(T)[3Tk2+3Tk+1]
枚举 T T T的值,由于 k k k是 T T T的倍数,记 j = k T j=\dfrac{k}{T} j=Tk,则 1 ≤ j ≤ ⌊ ⌊ n 3 ⌋ − 1 T ⌋ 1\le j\le\left\lfloor\dfrac{\lfloor\sqrt[3]{n}\rfloor-1}{T}\right\rfloor 1≤j≤⌊T⌊3n⌋−1⌋,简记为 1 ≤ j ≤ b 1\le j\le b 1≤j≤b,上式进一步化为
∑ T = 1 ⌊ n 3 ⌋ − 1 φ ( T ) ∑ j = 1 b [ 3 T j 2 + 3 j + 1 ] = ∑ T = 1 ⌊ n 3 ⌋ − 1 φ ( T ) [ 3 T ∑ j = 1 b j 2 + 3 ∑ j = 1 b j + ∑ j = 1 b 1 ] = ∑ T = 1 ⌊ n 3 ⌋ − 1 φ ( T ) [ b ( b + 1 ) ( 2 b + 1 ) 2 T + 3 b ( b + 1 ) 2 + b ] \begin{aligned} &\sum_{T=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\varphi(T)\sum_{j=1}^{b}[3Tj^2+3j+1]\\ =&\sum_{T=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\varphi(T)\left[3T\sum_{j=1}^{b}j^2+3\sum_{j=1}^{b}j+\sum_{j=1}^{b}1\right]\\ =&\sum_{T=1}^{\lfloor\sqrt[3]{n}\rfloor-1}\varphi(T)\left[\dfrac{b(b+1)(2b+1)}{2}T+\dfrac{3b(b+1)}{2}+b\right] \end{aligned} ==T=1∑⌊3n⌋−1φ(T)j=1∑b[3Tj2+3j+1]T=1∑⌊3n⌋−1φ(T)[3Tj=1∑bj2+3j=1∑bj+j=1∑b1]T=1∑⌊3n⌋−1φ(T)[2b(b+1)(2b+1)T+23b(b+1)+b]
T T T的范围为 O ( n 3 ) O(\sqrt[3]{n}) O(3n),用线性筛 O ( n 3 ) O(\sqrt[3]{n}) O(3n)预处理 φ ( T ) \varphi(T) φ(T)后,可在 O ( n 3 ) O(\sqrt[3]{n}) O(3n)的时间内枚举 T T T算出上式。
还好我翻出了三年前的线性筛板子,不然这题没法做了。
后一部分化为
∑ i = 1 n gcd ( ⌊ n 3 ⌋ , i ) − ∑ i = 1 ⌊ n 3 ⌋ 3 − 1 gcd ( ⌊ n 3 ⌋ , i ) = ∑ T ∣ ⌊ n 3 ⌋ ⌊ n T ⌋ φ ( T ) − ∑ T ∣ ⌊ n 3 ⌋ ⌊ ⌊ n 3 ⌋ 3 − 1 T ⌋ φ ( T ) = ∑ T ∣ ⌊ n 3 ⌋ φ ( T ) [ ⌊ n T ⌋ − ⌊ ⌊ n 3 ⌋ 3 − 1 T ⌋ ] = ∑ T ∣ ⌊ n 3 ⌋ φ ( T ) [ ⌊ n T ⌋ − ( ⌊ n 3 ⌋ 3 T + ⌊ − 1 T ⌋ ) ] = ∑ T ∣ ⌊ n 3 ⌋ φ ( T ) [ ⌊ n T ⌋ − ⌊ n 3 ⌋ 3 T + 1 ] \begin{aligned} &\sum_{i=1}^n\gcd(\lfloor\sqrt[3]{n}\rfloor,i)-\sum_{i=1}^{\lfloor\sqrt[3]{n}\rfloor^3-1}\gcd(\lfloor\sqrt[3]{n}\rfloor,i)\\ =&\sum_{T|\lfloor\sqrt[3]{n}\rfloor}\left\lfloor\dfrac{n}{T}\right\rfloor\varphi(T)-\sum_{T|\lfloor\sqrt[3]{n}\rfloor}\left\lfloor\dfrac{\lfloor\sqrt[3]{n}\rfloor^3-1}{T}\right\rfloor\varphi(T)\\ =&\sum_{T|\lfloor\sqrt[3]{n}\rfloor}\varphi(T)\left[\left\lfloor\dfrac{n}{T}\right\rfloor-\left\lfloor\dfrac{\lfloor\sqrt[3]{n}\rfloor^3-1}{T}\right\rfloor\right]\\ =&\sum_{T|\lfloor\sqrt[3]{n}\rfloor}\varphi(T)\left[\left\lfloor\dfrac{n}{T}\right\rfloor-\left(\dfrac{\lfloor\sqrt[3]{n}\rfloor^3}{T}+\left\lfloor-\dfrac{1}{T}\right\rfloor\right)\right]\\ =&\sum_{T|\lfloor\sqrt[3]{n}\rfloor}\varphi(T)\left[\left\lfloor\dfrac{n}{T}\right\rfloor-\dfrac{\lfloor\sqrt[3]{n}\rfloor^3}{T}+1\right] \end{aligned} ====i=1∑ngcd(⌊3n⌋,i)−i=1∑⌊3n⌋3−1gcd(⌊3n⌋,i)T∣⌊3n⌋∑⌊Tn⌋φ(T)−T∣⌊3n⌋∑⌊T⌊3n⌋3−1⌋φ(T)T∣⌊3n⌋∑φ(T)[⌊Tn⌋−⌊T⌊3n⌋3−1⌋]T∣⌊3n⌋∑φ(T)[⌊Tn⌋−(T⌊3n⌋3+⌊−T1⌋)]T∣⌊3n⌋∑φ(T)[⌊Tn⌋−T⌊3n⌋3+1]
这里 T T T的范围同样为 O ( n 3 ) O(\sqrt[3]{n}) O(3n),不过由于 T T T是 ⌊ n 3 ⌋ \lfloor\sqrt[3]{n}\rfloor ⌊3n⌋的因式,可在 O ( n 6 ) O(\sqrt[6]{n}) O(6n)的时间内枚举。
n
n
n的范围超过了long long
,必要时可以使用__int128
,但要谨慎使用,以防超时。
下面推导 ∑ i = 1 n gcd ( a , i ) = ∑ T ∣ a ⌊ n T ⌋ φ ( T ) \displaystyle\sum_{i=1}^n\gcd(a,i)=\sum_{T|a}\left\lfloor\dfrac{n}{T}\right\rfloor\varphi(T) i=1∑ngcd(a,i)=T∣a∑⌊Tn⌋φ(T)。枚举 gcd ( a , i ) \gcd(a,i) gcd(a,i)的值 d d d:
∑ i = 1 n gcd ( a , i ) = ∑ d ∣ a d ∑ i = 1 n [ gcd ( a , i ) = d ] \sum_{i=1}^n\gcd(a,i)=\sum_{d|a}d\sum_{i=1}^n[\gcd(a,i)=d] i=1∑ngcd(a,i)=d∣a∑di=1∑n[gcd(a,i)=d]
其中 gcd ( a , i ) = d \gcd(a,i)=d gcd(a,i)=d等价于 gcd ( a d , i d ) = 1 \gcd\left(\dfrac{a}{d},\dfrac{i}{d}\right)=1 gcd(da,di)=1,记 k = i d k=\dfrac{i}{d} k=di,则 1 ≤ k ≤ ⌊ n d ⌋ 1\le k\le\left\lfloor\dfrac{n}{d}\right\rfloor 1≤k≤⌊dn⌋,上式化为
∑ d ∣ a d ∑ k = 1 ⌊ n d ⌋ [ gcd ( a d , k ) = 1 ] \sum_{d|a}d\sum_{k=1}^{\scriptsize\left\lfloor\dfrac{n}{d}\right\rfloor}\left[\gcd\left(\dfrac{a}{d},k\right)=1\right] d∣a∑dk=1∑⌊dn⌋[gcd(da,k)=1]
利用 ε ( n ) = [ n = 1 ] = ∑ d ∣ n μ ( d ) \displaystyle\varepsilon(n)=[n=1]=\sum_{d|n}\mu(d) ε(n)=[n=1]=d∣n∑μ(d),上式转化为
∑ d ∣ a d ∑ k = 1 ⌊ n d ⌋ ε ( gcd ( a d , k ) ) = ∑ d ∣ a d ∑ k = 1 ⌊ n d ⌋ ∑ t d ∣ a , t ∣ k μ ( t ) \begin{aligned} &\sum_{d|a}d\sum_{k=1}^{\scriptsize\left\lfloor\dfrac{n}{d}\right\rfloor}\varepsilon\left(\gcd\left(\dfrac{a}{d},k\right)\right)\\ =&\sum_{d|a}d\sum_{k=1}^{\scriptsize\left\lfloor\dfrac{n}{d}\right\rfloor}\sum_{td|a,t|k}\mu(t) \end{aligned} =d∣a∑dk=1∑⌊dn⌋ε(gcd(da,k))d∣a∑dk=1∑⌊dn⌋td∣a,t∣k∑μ(t)
交换 k , t k,t k,t的枚举顺序,由于 k k k是 t t t的倍数,记 j = k t j=\dfrac{k}{t} j=tk,则 1 ≤ j ≤ ⌊ ⌊ n d ⌋ / t ⌋ = ⌊ n t d ⌋ 1\le j\le\left\lfloor\left.\left\lfloor\dfrac{n}{d}\right\rfloor\right/t\right\rfloor=\left\lfloor\dfrac{n}{td}\right\rfloor 1≤j≤⌊⌊dn⌋/t⌋=⌊tdn⌋,进而
∑ d ∣ a d ∑ t d ∣ a ∑ j = 1 ⌊ n t d ⌋ μ ( t ) = ∑ d ∣ a d ∑ t d ∣ a μ ( t ) ⌊ n t d ⌋ \begin{aligned} &\sum_{d|a}d\sum_{td|a}\sum_{j=1}^{\scriptsize\left\lfloor\dfrac{n}{td}\right\rfloor}\mu(t)\\ =&\sum_{d|a}d\sum_{td|a}\mu(t)\left\lfloor\dfrac{n}{td}\right\rfloor \end{aligned} =d∣a∑dtd∣a∑j=1∑⌊tdn⌋μ(t)d∣a∑dtd∣a∑μ(t)⌊tdn⌋
再利用 φ ( n ) = ∑ d ∣ n d μ ( n d ) \displaystyle\varphi(n)=\sum_{d|n}d\mu\left(\dfrac{n}{d}\right) φ(n)=d∣n∑dμ(dn),令 t d = T td=T td=T,则 t = T d t=\dfrac{T}{d} t=dT,所以
∑ d ∣ a d ∑ T ∣ a , d ∣ T μ ( T d ) ⌊ n T ⌋ = ∑ T ∣ a ⌊ n T ⌋ ∑ d ∣ T d μ ( T d ) = ∑ T ∣ a ⌊ n T ⌋ φ ( T ) \begin{aligned} &\sum_{d|a}d\sum_{T|a,d|T}\mu\left(\dfrac{T}{d}\right)\left\lfloor\dfrac{n}{T}\right\rfloor\\ =&\sum_{T|a}\left\lfloor\dfrac{n}{T}\right\rfloor\sum_{d|T}d\mu\left(\dfrac{T}{d}\right)\\ =&\sum_{T|a}\left\lfloor\dfrac{n}{T}\right\rfloor\varphi(T) \end{aligned} ==d∣a∑dT∣a,d∣T∑μ(dT)⌊Tn⌋T∣a∑⌊Tn⌋d∣T∑dμ(dT)T∣a∑⌊Tn⌋φ(T)