前言
作为一只数论只会 g c d gcd gcd的蒟蒻,强行学习了欧拉函数和莫比乌斯反演后,已经暴毙而亡。马上就要 A F O AFO AFO了,“死”前还是留点遗产吧。
简单的定义
- ∑ : \sum: ∑:求和
- ∏ : \prod: ∏: 乘积
- [ x ] : [x]: [x]: x x x为一个逻辑表达式,若 x x x的结果为真,则值为 1 1 1,反之为 0 0 0
- ⌊ x ⌋ : \lfloor x \rfloor: ⌊x⌋: 表示不超过 x x x 的最大整数。
莫比乌斯函数
- μ ( n ) = { 1 n = 1 ( − 1 ) k n = ∏ i = 1 m p i 0 o t h e r w i s e \mu(n)=\left\{\begin{matrix} 1 & n=1 \\ (-1)^k & n=\prod\limits_{i=1}^{m}p_i \\ 0 & otherwise \end{matrix}\right. μ(n)=⎩⎪⎪⎨⎪⎪⎧1(−1)k0n=1n=i=1∏mpiotherwise
莫比乌斯反演
(注:以下例题基本出自 W R WR WR 的数论博客中,略有删改。)
一个很有用的结论
∑
d
∣
n
μ
(
d
)
=
[
n
=
=
1
]
\sum\limits_{d \mid n}\mu(d)=[n==1]
d∣n∑μ(d)=[n==1]
P
r
o
o
f
:
Proof:
Proof:
当
n
=
1
n=1
n=1 时,显然成立。
当
n
>
1
n>1
n>1 时,设
n
=
∏
i
=
1
m
p
i
c
i
n=\prod\limits_{i=1}^{m}p_i^{c_i}
n=i=1∏mpici,
若
d
d
d 存在一个质因子的次数
>
1
>1
>1,则
μ
(
d
)
=
0
\mu(d)=0
μ(d)=0,
否则,设
d
=
∏
i
=
1
k
p
i
′
d = \prod\limits_{i=1}^{k}p'_i
d=i=1∏kpi′,则
μ
(
d
)
=
(
−
1
)
k
\mu(d)=(-1)^k
μ(d)=(−1)k
∴
∑
d
∣
n
=
μ
(
1
)
+
∑
i
=
1
m
(
−
1
)
i
∗
(
m
i
)
=
∑
i
=
0
m
(
−
1
)
i
∗
1
m
−
i
∗
(
m
i
)
\therefore \ \sum\limits_{d \mid n}=\mu(1)+\sum\limits_{i=1}^m(-1)^i*\tbinom{m}{i}=\sum\limits_{i=0}^{m}(-1)^i*1^{m-i}*\tbinom{m}{i}
∴ d∣n∑=μ(1)+i=1∑m(−1)i∗(im)=i=0∑m(−1)i∗1m−i∗(im)
根据二项式定理,上式
=
0
=0
=0。
证毕。
该结论是莫比乌斯反演的核心。
以下内容默认 n ≤ m n \leq m n≤m ,不满足则交换。
e . g . 1 e.g.1 e.g.1
求
∑
i
=
1
n
∑
j
=
1
m
[
g
c
d
(
i
,
j
)
=
=
1
]
\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==1]
i=1∑nj=1∑m[gcd(i,j)==1]
S
o
l
u
t
i
o
n
:
Solution:
Solution:
根据上面的结论可得:
∑
i
=
1
n
∑
j
=
1
m
[
g
c
d
(
i
,
j
)
=
=
1
]
=
∑
i
=
1
n
∑
j
=
1
m
∑
d
∣
g
c
d
(
i
,
j
)
μ
(
d
)
=
∑
d
=
1
n
μ
(
d
)
∑
i
=
1
⌊
n
d
⌋
∑
j
=
1
⌊
m
d
⌋
1
=
∑
d
=
1
n
μ
(
d
)
∗
⌊
n
d
⌋
∗
⌊
m
d
⌋
\begin{array}{l} \quad \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==1] \\ = \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{d \mid gcd(i,j)}\mu(d) \\ = \sum\limits_{d=1}^{n}\mu(d)\sum\limits_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{d} \rfloor}1 \\ = \sum\limits_{d=1}^{n}\mu(d)*\lfloor\frac{n}{d}\rfloor*\lfloor\frac{m}{d}\rfloor\\ \end{array}
i=1∑nj=1∑m[gcd(i,j)==1]=i=1∑nj=1∑md∣gcd(i,j)∑μ(d)=d=1∑nμ(d)i=1∑⌊dn⌋j=1∑⌊dm⌋1=d=1∑nμ(d)∗⌊dn⌋∗⌊dm⌋
对第二行到第三行做出解释:
d
∣
g
c
d
(
i
,
j
)
⇔
d
∣
i
∧
d
∣
j
d \mid gcd(i,j) \Leftrightarrow d \mid i \land d \mid j
d∣gcd(i,j)⇔d∣i∧d∣j
∴
\therefore
∴ 满足
d
∣
g
c
d
(
i
,
j
)
d \mid gcd(i,j)
d∣gcd(i,j) 的有序数对
(
i
,
j
)
(i,j)
(i,j) 可表示为
(
x
d
,
y
d
)
(
x
∈
[
1
,
⌊
n
d
⌋
]
,
y
∈
[
1
,
⌊
m
d
⌋
]
)
(xd,yd)(x\in[1, \lfloor \frac{n}{d} \rfloor],y\in[1, \lfloor \frac{m}{d} \rfloor])
(xd,yd)(x∈[1,⌊dn⌋],y∈[1,⌊dm⌋])
直接暴力做的话单次询问是
O
(
n
)
O(n)
O(n) 的。
于是有了一个叫整除分块的东西。
打表找规律可得
⌊
n
d
⌋
\lfloor \frac{n}{d} \rfloor
⌊dn⌋ 只有
O
(
n
)
O(\sqrt{n})
O(n) 种取值,
∴
⌊
n
d
⌋
∗
⌊
m
d
⌋
\therefore \lfloor\frac{n}{d}\rfloor*\lfloor\frac{m}{d}\rfloor
∴⌊dn⌋∗⌊dm⌋ 只有
O
(
n
+
m
)
O(\sqrt{n}+\sqrt{m})
O(n+m) 种取值,可以分块。
当
n
=
16
,
m
=
20
n=16,m=20
n=16,m=20 时的表如下:
d d d | 1 1 1 | 2 2 2 | 3 3 3 | 4 4 4 | 5 5 5 | 6 6 6 | 7 7 7 | 8 8 8 | 9 9 9 | 10 10 10 | 11 11 11 | 12 12 12 | 13 13 13 | 14 14 14 | 15 15 15 | 16 16 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
⌊ n d ⌋ \lfloor\frac{n}{d}\rfloor ⌊dn⌋ | 16 16 16 | 8 8 8 | 5 5 5 | 4 4 4 | 3 3 3 | 2 2 2 | 2 2 2 | 2 2 2 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 |
⌊ m d ⌋ \lfloor\frac{m}{d}\rfloor ⌊dm⌋ | 20 20 20 | 10 10 10 | 6 6 6 | 5 5 5 | 4 4 4 | 3 3 3 | 2 2 2 | 2 2 2 | 2 2 2 | 2 2 2 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 |
以下给出证明:
P
r
o
o
f
:
Proof:
Proof:
当
d
∈
[
1
,
n
]
d \in [1, \sqrt{n}]
d∈[1,n] 时,
d
d
d 的取值只有
O
(
n
)
O(\sqrt{n})
O(n) 个,
∴
⌊
n
d
⌋
\therefore \lfloor\frac{n}{d}\rfloor
∴⌊dn⌋ 的取值只有
O
(
n
)
O(\sqrt{n})
O(n) 个。
当
d
∈
(
n
,
n
]
d \in (\sqrt{n},n]
d∈(n,n] 时,
⌊
n
d
⌋
∈
[
1
,
n
]
\lfloor\frac{n}{d}\rfloor\in[1, \sqrt{n}]
⌊dn⌋∈[1,n],
∴
⌊
n
d
⌋
\therefore \lfloor\frac{n}{d}\rfloor
∴⌊dn⌋ 的取值只有
O
(
n
)
O(\sqrt{n})
O(n) 个。
综上所述,
⌊
n
d
⌋
\lfloor\frac{n}{d}\rfloor
⌊dn⌋ 的取值只有
O
(
n
)
O(\sqrt{n})
O(n) 个。
∴
⌊
n
d
⌋
\therefore\lfloor\frac{n}{d}\rfloor
∴⌊dn⌋ 会被划分成
O
(
n
)
O(\sqrt{n})
O(n) 段区间,每段区间内
⌊
n
d
⌋
\lfloor\frac{n}{d}\rfloor
⌊dn⌋ 的值相等
∴
\therefore
∴ 整张表会被划分成
O
(
n
+
m
)
O(\sqrt{n} + \sqrt{m})
O(n+m) 段区间,每段区间内
⌊
n
d
⌋
\lfloor\frac{n}{d}\rfloor
⌊dn⌋ 和
⌊
n
d
⌋
\lfloor\frac{n}{d}\rfloor
⌊dn⌋ 都相等。
\quad
当且仅当上一行的每段区间都与下一行的两段区间有交集时取到最大值。
证毕。
此外,还需要确定当前区间的末尾。
设当前区间的左端点为
l
l
l ,右端点为
r
r
r 。
则满足
⌊
n
l
⌋
=
⌊
n
r
⌋
\lfloor \frac{n}{l} \rfloor = \lfloor \frac{n}{r} \rfloor
⌊ln⌋=⌊rn⌋,
又
∵
⌊
n
l
⌋
≤
n
l
\because \lfloor \frac{n}{l} \rfloor \leq \frac{n}{l}
∵⌊ln⌋≤ln
∴
⌊
n
l
⌋
≤
n
r
\quad \therefore \lfloor \frac{n}{l} \rfloor \leq \frac{n}{r}
∴⌊ln⌋≤rn
∴
r
≤
n
⌊
n
l
⌋
\quad \therefore r \leq \frac{n}{\lfloor \frac{n}{l} \rfloor}
∴r≤⌊ln⌋n
∴
r
≤
⌊
n
⌊
n
l
⌋
⌋
\quad \therefore r \leq \lfloor \frac{n}{\lfloor \frac{n}{l} \rfloor} \rfloor
∴r≤⌊⌊ln⌋n⌋
对
m
m
m 同理,将两个右端点取
m
i
n
min
min 即可。
e . g . 2 e.g.2 e.g.2
求
∑
i
=
1
n
∑
j
=
1
m
[
g
c
d
(
i
,
j
)
=
=
k
]
\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==k]
i=1∑nj=1∑m[gcd(i,j)==k]
S
o
l
u
t
i
o
n
:
Solution:
Solution:
显然
g
c
d
(
i
,
j
)
=
=
k
⇔
i
∣
k
∧
j
∣
k
∧
g
c
d
(
i
k
,
j
k
)
=
=
1
gcd(i,j)==k \Leftrightarrow i \mid k \land j \mid k \land gcd(\frac{i}{k}, \frac{j}{k})==1
gcd(i,j)==k⇔i∣k∧j∣k∧gcd(ki,kj)==1
∴
∑
i
=
1
n
∑
j
=
1
m
[
g
c
d
(
i
,
j
)
=
=
k
]
=
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
[
g
c
d
(
i
,
j
)
=
=
1
]
\therefore\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==k]=\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k} \rfloor}[gcd(i,j)==1]
∴i=1∑nj=1∑m[gcd(i,j)==k]=i=1∑⌊kn⌋j=1∑⌊km⌋[gcd(i,j)==1]
然后就和
e
.
g
.
1
e.g.1
e.g.1一样了。
e . g . 3 e.g.3 e.g.3
求
∑
i
=
1
n
∑
j
=
1
m
i
∗
j
∗
[
g
c
d
(
i
,
j
)
=
=
k
]
\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}i*j*[gcd(i,j)==k]
i=1∑nj=1∑mi∗j∗[gcd(i,j)==k]
S
o
l
u
t
i
o
n
:
Solution:
Solution:
∑
i
=
1
n
∑
j
=
1
m
i
∗
j
∗
[
g
c
d
(
i
,
j
)
=
=
k
]
=
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
i
∗
k
∗
j
∗
k
∗
[
g
c
d
(
i
,
j
)
=
=
1
]
=
k
2
∗
∑
i
=
1
⌊
n
k
⌋
i
∗
∑
j
=
1
⌊
m
k
⌋
j
∗
[
g
c
d
(
i
,
j
)
=
=
1
]
=
k
2
∗
∑
d
=
1
⌊
n
k
⌋
μ
(
d
)
∗
∑
i
=
1
⌊
n
k
∗
d
⌋
i
∗
∑
j
=
1
⌊
m
k
∗
d
⌋
j
\begin{array}{l} \quad \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}i*j*[gcd(i,j)==k] \\ = \sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{k}\rfloor}i*k*j*k*[gcd(i,j)==1] \\ = k^2*\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}i*\sum\limits_{j=1}^{\lfloor\frac{m}{k}\rfloor}j*[gcd(i,j)==1] \\ = k^2*\sum\limits_{d=1}^{\lfloor\frac{n}{k}\rfloor}\mu(d)*\sum\limits_{i=1}^{\lfloor \frac{n}{k*d} \rfloor}i*\sum\limits_{j=1}^{\lfloor\frac{m}{k*d}\rfloor}j \\ \end{array}
i=1∑nj=1∑mi∗j∗[gcd(i,j)==k]=i=1∑⌊kn⌋j=1∑⌊km⌋i∗k∗j∗k∗[gcd(i,j)==1]=k2∗i=1∑⌊kn⌋i∗j=1∑⌊km⌋j∗[gcd(i,j)==1]=k2∗d=1∑⌊kn⌋μ(d)∗i=1∑⌊k∗dn⌋i∗j=1∑⌊k∗dm⌋j
后面的两个
∑
\sum
∑ 都可以预处理,直接整除分块即可
O
(
n
)
O(\sqrt{n})
O(n) 求解。
e . g . 4 e.g.4 e.g.4
求
∑
i
=
1
n
∑
j
=
1
m
g
c
d
(
i
,
j
)
\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)
i=1∑nj=1∑mgcd(i,j)
S
o
l
u
t
i
o
n
:
Solution:
Solution:
∑
i
=
1
n
∑
j
=
1
m
g
c
d
(
i
,
j
)
=
∑
i
=
1
n
∑
j
=
1
m
∑
k
=
1
n
k
∗
[
g
c
d
(
i
,
j
)
=
=
k
]
=
∑
k
=
1
n
k
∗
∑
i
=
1
n
∑
j
=
1
m
[
g
c
d
(
i
,
j
)
=
=
k
]
=
∑
k
=
1
n
k
∗
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
∑
d
∣
g
c
d
(
i
,
j
)
μ
(
d
)
=
∑
k
=
1
n
k
∗
∑
d
=
1
⌊
n
k
⌋
μ
(
d
)
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
1
=
∑
k
=
1
n
k
∗
∑
d
=
1
⌊
n
k
⌋
μ
(
d
)
∗
⌊
n
k
∗
d
⌋
∗
⌊
m
k
∗
d
⌋
\begin{array}{l} \quad \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j) \\ = \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{k=1}^{n}k*[gcd(i,j)==k] \\ = \sum\limits_{k=1}^{n}k*\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==k] \\ = \sum\limits_{k=1}^{n}k*\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k} \rfloor}\sum\limits_{d\mid gcd(i,j)}\mu(d) \\ = \sum\limits_{k=1}^{n}k*\sum\limits_{d=1}^{\lfloor \frac{n}{k} \rfloor}\mu(d)\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k} \rfloor}1 \\ = \sum\limits_{k=1}^{n}k*\sum\limits_{d=1}^{\lfloor \frac{n}{k} \rfloor}\mu(d)*\lfloor \frac{n}{k*d}\rfloor*\lfloor \frac{m}{k*d} \rfloor \\ \end{array}
i=1∑nj=1∑mgcd(i,j)=i=1∑nj=1∑mk=1∑nk∗[gcd(i,j)==k]=k=1∑nk∗i=1∑nj=1∑m[gcd(i,j)==k]=k=1∑nk∗i=1∑⌊kn⌋j=1∑⌊km⌋d∣gcd(i,j)∑μ(d)=k=1∑nk∗d=1∑⌊kn⌋μ(d)i=1∑⌊kn⌋j=1∑⌊km⌋1=k=1∑nk∗d=1∑⌊kn⌋μ(d)∗⌊k∗dn⌋∗⌊k∗dm⌋
做到这一步之后,有一个套路性的东西:
枚举
k
∗
d
k*d
k∗d
设
T
=
k
∗
d
T=k*d
T=k∗d
∴
∑
k
=
1
n
k
∗
∑
d
=
1
⌊
n
k
⌋
μ
(
d
)
∗
⌊
n
k
∗
d
⌋
∗
⌊
m
k
∗
d
⌋
=
∑
T
=
1
n
⌊
n
T
⌋
∗
⌊
m
T
⌋
∗
∑
d
∣
T
μ
(
d
)
∗
T
d
\therefore\sum\limits_{k=1}^{n}k*\sum\limits_{d=1}^{\lfloor \frac{n}{k} \rfloor}\mu(d)*\lfloor \frac{n}{k*d}\rfloor*\lfloor \frac{m}{k*d} \rfloor = \sum\limits_{T=1}^{n}\lfloor \frac{n}{T}\rfloor * \lfloor \frac{m}{T} \rfloor*\sum\limits_{d \mid T}\mu(d)*\frac{T}{d}
∴k=1∑nk∗d=1∑⌊kn⌋μ(d)∗⌊k∗dn⌋∗⌊k∗dm⌋=T=1∑n⌊Tn⌋∗⌊Tm⌋∗d∣T∑μ(d)∗dT
根据之前
φ
\varphi
φ 函数的性质可得,
∑
d
∣
T
μ
(
d
)
∗
T
d
=
φ
(
T
)
\sum\limits_{d \mid T}\mu(d)*\frac{T}{d}=\varphi(T)
d∣T∑μ(d)∗dT=φ(T)
∴
∑
T
=
1
n
⌊
n
T
⌋
∗
⌊
m
T
⌋
∗
∑
d
∣
T
μ
(
d
)
∗
T
d
=
∑
T
=
1
n
⌊
n
T
⌋
∗
⌊
m
T
⌋
∗
φ
(
T
)
\therefore \sum\limits_{T=1}^{n}\lfloor \frac{n}{T}\rfloor * \lfloor \frac{m}{T} \rfloor*\sum\limits_{d \mid T}\mu(d)*\frac{T}{d}=\sum\limits_{T=1}^{n}\lfloor \frac{n}{T}\rfloor * \lfloor \frac{m}{T} \rfloor*\varphi(T)
∴T=1∑n⌊Tn⌋∗⌊Tm⌋∗d∣T∑μ(d)∗dT=T=1∑n⌊Tn⌋∗⌊Tm⌋∗φ(T)
预处理
φ
\varphi
φ 函数的前缀和即可整除分块,
O
(
n
)
O(\sqrt{n})
O(n)求解。
e . g . 5 e.g.5 e.g.5
求
∑
i
=
1
n
∑
j
=
1
m
l
c
m
(
i
,
j
)
\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)
i=1∑nj=1∑mlcm(i,j)
S
o
l
u
t
i
o
n
:
Solution:
Solution:
∑
i
=
1
n
∑
j
=
1
m
l
c
m
(
i
,
j
)
=
∑
i
=
1
n
∑
j
=
1
m
i
∗
j
g
c
d
(
i
,
j
)
=
∑
i
=
1
n
∑
j
=
1
m
∑
k
=
1
n
[
g
c
d
(
i
,
j
)
=
=
k
]
∗
i
∗
j
k
=
∑
k
=
1
n
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
[
g
c
d
(
i
,
j
)
=
=
1
]
∗
i
∗
k
∗
j
∗
k
k
=
∑
k
=
1
n
k
∗
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
[
g
c
d
(
i
,
j
)
=
=
1
]
∗
i
∗
j
=
∑
k
=
1
n
k
∗
∑
d
=
1
⌊
n
k
⌋
μ
(
d
)
∗
d
2
∗
∑
i
=
1
⌊
n
k
∗
d
⌋
i
∗
∑
j
=
1
⌊
m
k
∗
d
⌋
j
=
∑
T
=
1
n
∑
i
=
1
⌊
n
T
⌋
i
∗
∑
j
=
1
⌊
m
T
⌋
j
∗
∑
d
∣
T
μ
(
d
)
∗
d
2
∗
T
d
=
∑
T
=
1
n
T
∗
∑
i
=
1
⌊
n
T
⌋
i
∗
∑
j
=
1
⌊
m
T
⌋
j
∗
∑
d
∣
T
μ
(
d
)
∗
d
\begin{array}{l} \quad \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j) \\ = \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\frac{i*j}{gcd(i,j)} \\ = \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{k=1}^{n}[gcd(i,j)==k]*\frac{i*j}{k} \\ = \sum\limits_{k=1}^{n}\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k} \rfloor}[gcd(i,j)==1]*\frac{i*k*j*k}{k} \\ = \sum\limits_{k=1}^{n}k*\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k} \rfloor}[gcd(i,j)==1]*i*j \\ = \sum\limits_{k=1}^{n}k*\sum \limits_{d=1}^{\lfloor \frac{n}{k} \rfloor}\mu(d)*d^2*\sum\limits_{i=1}^{\lfloor \frac{n}{k*d} \rfloor}i*\sum\limits_{j=1}^{\lfloor \frac{m}{k*d} \rfloor}j \\ = \sum\limits_{T=1}^{n}\sum\limits_{i=1}^{\lfloor \frac{n}{T} \rfloor}i*\sum\limits_{j=1}^{\lfloor \frac{m}{T} \rfloor}j*\sum\limits_{d \mid T}\mu(d)*d^2*\frac{T}{d} \\ = \sum\limits_{T=1}^{n}T*\sum\limits_{i=1}^{\lfloor \frac{n}{T} \rfloor}i*\sum\limits_{j=1}^{\lfloor \frac{m}{T} \rfloor}j*\sum\limits_{d \mid T}\mu(d)*d \\ \end{array}
i=1∑nj=1∑mlcm(i,j)=i=1∑nj=1∑mgcd(i,j)i∗j=i=1∑nj=1∑mk=1∑n[gcd(i,j)==k]∗ki∗j=k=1∑ni=1∑⌊kn⌋j=1∑⌊km⌋[gcd(i,j)==1]∗ki∗k∗j∗k=k=1∑nk∗i=1∑⌊kn⌋j=1∑⌊km⌋[gcd(i,j)==1]∗i∗j=k=1∑nk∗d=1∑⌊kn⌋μ(d)∗d2∗i=1∑⌊k∗dn⌋i∗j=1∑⌊k∗dm⌋j=T=1∑ni=1∑⌊Tn⌋i∗j=1∑⌊Tm⌋j∗d∣T∑μ(d)∗d2∗dT=T=1∑nT∗i=1∑⌊Tn⌋i∗j=1∑⌊Tm⌋j∗d∣T∑μ(d)∗d
设
f
(
n
)
=
∑
i
=
1
n
i
f(n)=\sum\limits_{i=1}^{n}i
f(n)=i=1∑ni ,则
∑
T
=
1
n
T
∗
∑
i
=
1
⌊
n
T
⌋
i
∗
∑
j
=
1
⌊
m
T
⌋
j
∗
∑
d
∣
T
μ
(
d
)
∗
d
=
∑
T
=
1
n
f
(
⌊
n
T
⌋
)
∗
f
(
⌊
m
T
⌋
)
∗
∑
d
∣
T
μ
(
d
)
∗
d
\sum\limits_{T=1}^{n}T*\sum\limits_{i=1}^{\lfloor \frac{n}{T} \rfloor}i*\sum\limits_{j=1}^{\lfloor \frac{m}{T} \rfloor}j*\sum\limits_{d \mid T}\mu(d)*d= \sum\limits_{T=1}^{n}f(\lfloor \frac{n}{T}\rfloor)*f(\lfloor \frac{m}{T}\rfloor)*\sum\limits_{d \mid T}\mu(d)*d
T=1∑nT∗i=1∑⌊Tn⌋i∗j=1∑⌊Tm⌋j∗d∣T∑μ(d)∗d=T=1∑nf(⌊Tn⌋)∗f(⌊Tm⌋)∗d∣T∑μ(d)∗d
显然
f
f
f 是可以预处理的,那么主要问题就是求最后一个
∑
\sum
∑ 。
设
g
(
n
)
=
∑
d
∣
n
μ
(
d
)
∗
d
g(n)=\sum\limits_{d \mid n}\mu(d)*d
g(n)=d∣n∑μ(d)∗d。
然后打个表,找找规律,会发现一个一个性质:
g
(
n
)
g(n)
g(n)是个积性函数!
以下给出证明:
P
r
o
o
f
:
Proof:
Proof:
设
g
c
d
(
a
,
b
)
=
1
gcd(a,b)=1
gcd(a,b)=1,则
g
(
a
)
∗
g
(
b
)
=
∑
d
1
∣
a
μ
(
d
1
)
∗
d
1
∗
∑
d
2
∣
b
μ
(
d
2
)
∗
d
2
∵
g
c
d
(
a
,
b
)
=
1
d
1
∣
a
d
2
∣
b
∴
g
c
d
(
d
1
,
d
2
)
=
1
∴
∑
d
1
∣
a
μ
(
d
1
)
∗
d
1
∗
∑
d
2
∣
b
μ
(
d
2
)
∗
d
2
=
∑
(
d
1
∗
d
2
)
∣
(
a
∗
b
)
μ
(
d
1
)
∗
μ
(
d
2
)
∗
d
1
∗
d
2
=
∑
(
d
1
∗
d
2
)
∣
(
a
∗
b
)
μ
(
d
1
∗
d
2
)
∗
(
d
1
∗
d
2
)
=
g
(
a
∗
b
)
\begin{array}{l} \quad g(a)*g(b) \\ = \sum\limits_{d_1 \mid a}\mu(d_1)*d_1*\sum\limits_{d_2 \mid b}\mu(d_2)*d_2 \\ \because gcd(a,b)=1 \\ \quad d_1 \mid a \\ \quad d_2 \mid b \\ \therefore gcd(d1,d2)=1 \\ \therefore \sum\limits_{d_1 \mid a}\mu(d_1)*d_1*\sum\limits_{d_2 \mid b}\mu(d_2)*d_2 \\ = \sum\limits_{(d_1*d_2) \mid (a*b)}\mu(d_1)*\mu(d_2)*d_1*d_2 \\ = \sum\limits_{(d_1*d_2) \mid (a*b)}\mu(d_1*d_2)*(d_1*d_2) \\ = g(a*b)\\ \end{array}
g(a)∗g(b)=d1∣a∑μ(d1)∗d1∗d2∣b∑μ(d2)∗d2∵gcd(a,b)=1d1∣ad2∣b∴gcd(d1,d2)=1∴d1∣a∑μ(d1)∗d1∗d2∣b∑μ(d2)∗d2=(d1∗d2)∣(a∗b)∑μ(d1)∗μ(d2)∗d1∗d2=(d1∗d2)∣(a∗b)∑μ(d1∗d2)∗(d1∗d2)=g(a∗b)
对两
∑
\sum
∑ 合并做出解释:
当
μ
(
d
1
)
∗
μ
(
d
2
)
=
0
\mu(d_1)*\mu(d_2)=0
μ(d1)∗μ(d2)=0 时,显然对结果无影响。
当
μ
(
d
1
)
∗
μ
(
d
2
)
̸
=
0
\mu(d_1)*\mu(d_2)\not=0
μ(d1)∗μ(d2)̸=0 时,
设
S
=
{
x
∣
μ
(
x
)
̸
=
0
∧
x
∣
d
1
}
,
T
=
{
x
∣
μ
(
x
)
̸
=
0
∧
x
∣
d
2
}
S=\{x \mid \mu(x) \not=0 \land x\mid d_1\},T=\{x \mid \mu(x) \not=0 \land x\mid d_2\}
S={x∣μ(x)̸=0∧x∣d1},T={x∣μ(x)̸=0∧x∣d2} ,则
S
∩
T
=
∅
S\cap T=\emptyset
S∩T=∅ 。
显然
(
x
1
∗
x
2
)
∣
(
a
∗
b
)
(x_1 * x_2) \mid (a * b)
(x1∗x2)∣(a∗b) 且
x
1
∗
x
2
̸
=
x
1
′
∗
x
2
′
,
x
1
′
∈
S
,
x
2
′
∈
T
,
x
1
̸
=
x
1
′
,
x
2
̸
=
x
2
′
x_1 * x_2 \not= x_1'*x_2',x_1'\in S,x_2'\in T,x_1 \not= x_1',x_2 \not= x_2'
x1∗x2̸=x1′∗x2′,x1′∈S,x2′∈T,x1̸=x1′,x2̸=x2′。
即
a
∗
b
a * b
a∗b 的每一个
μ
\mu
μ 值不为
0
0
0 的约数都唯一对应着一个二元组
(
x
1
,
x
2
)
(x_1,x_2)
(x1,x2) 。
证毕。
众所周知,所有的积性函数都可以用线性筛筛出来。
设
n
n
n 的最小质因子为
p
p
p,
x
=
n
p
x = \frac{n}{p}
x=pn
考虑求
g
(
n
)
g(n)
g(n) :
当
n
∈
p
r
i
m
e
n \in prime
n∈prime 时,
g
(
n
)
=
μ
(
1
)
∗
1
+
μ
(
n
)
∗
n
=
1
−
n
g(n)=\mu(1)*1+\mu(n)*n=1-n
g(n)=μ(1)∗1+μ(n)∗n=1−n;
当
n
=
p
k
n = p^k
n=pk 时, 显然
μ
(
p
i
)
=
0
(
i
≥
2
)
⇒
g
(
n
)
=
1
−
p
=
g
(
p
)
\mu(p^i)=0(i \geq 2) \Rightarrow g(n)=1-p=g(p)
μ(pi)=0(i≥2)⇒g(n)=1−p=g(p);
当
p
∤
x
p \nmid x
p∤x 时, 则
g
c
d
(
x
,
p
)
=
1
⇒
g
(
n
)
=
g
(
x
)
∗
g
(
p
)
gcd(x, p)=1 \Rightarrow g(n)=g(x)*g(p)
gcd(x,p)=1⇒g(n)=g(x)∗g(p);
当
p
∣
x
p \mid x
p∣x 时, 则
g
(
n
)
=
g
(
n
p
k
)
∗
g
(
p
k
)
=
g
(
n
;
p
k
)
∗
g
(
p
)
=
g
(
n
p
k
)
∗
g
(
p
k
−
1
)
=
g
(
x
)
(
p
k
∣
n
∧
p
k
+
1
∤
n
,
k
∈
N
∗
,
k
≥
2
)
g(n)=g(\frac{n}{p^k})*g(p^k)=g(\frac{n};{p^k})*g(p)=g(\frac{n}{p^k})*g(p^{k-1})=g(x)(p^k \mid n \land p^{k+1} \nmid n,k\in \mathbb{N^*},k \geq 2)
g(n)=g(pkn)∗g(pk)=g(;npk)∗g(p)=g(pkn)∗g(pk−1)=g(x)(pk∣n∧pk+1∤n,k∈N∗,k≥2)。
那么就可以
O
(
n
)
O(n)
O(n) 预处理
g
(
n
)
g(n)
g(n) 了。
∴
∑
i
=
1
n
∑
j
=
1
m
l
c
m
(
i
,
j
)
=
∑
T
=
1
n
f
(
⌊
n
T
⌋
)
∗
f
(
⌊
m
T
⌋
)
∗
g
(
T
)
\therefore \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)=\sum\limits_{T=1}^{n}f(\lfloor \frac{n}{T}\rfloor)*f(\lfloor \frac{m}{T}\rfloor)*g(T)
∴i=1∑nj=1∑mlcm(i,j)=T=1∑nf(⌊Tn⌋)∗f(⌊Tm⌋)∗g(T)
单次询问即可做到
O
(
n
)
O(\sqrt{n})
O(n) 。
e . g . 6 e.g.6 e.g.6
求
∑
i
=
1
n
∑
j
=
1
m
g
c
d
(
i
,
j
)
x
\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)^x
i=1∑nj=1∑mgcd(i,j)x
S
o
l
u
t
i
o
n
:
Solution:
Solution:
∑
i
=
1
n
∑
j
=
1
m
g
c
d
(
i
,
j
)
x
=
∑
k
=
1
n
∑
i
=
1
n
∑
j
=
1
m
[
g
c
d
(
i
,
j
)
=
=
k
]
∗
k
x
=
∑
k
=
1
n
k
x
∗
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
[
g
c
d
(
i
,
j
)
=
=
1
]
=
∑
k
=
1
n
k
x
∗
∑
d
=
1
⌊
n
k
⌋
μ
(
d
)
∗
⌊
n
k
∗
d
⌋
∗
⌊
m
k
∗
d
⌋
=
∑
T
=
1
n
⌊
n
T
⌋
∗
⌊
m
T
⌋
∗
∑
d
∣
T
d
x
∗
μ
(
T
d
)
\begin{array}{l} \quad \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)^x \\ = \sum\limits_{k=1}^{n}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==k] *k^x \\ = \sum\limits_{k=1}^{n}k^x*\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k} \rfloor}[gcd(i,j)==1]\\ = \sum\limits_{k=1}^{n}k^x*\sum\limits_{d=1}^{\lfloor \frac{n}{k} \rfloor}\mu(d)*\lfloor \frac{n}{k*d} \rfloor*\lfloor \frac{m}{k*d} \rfloor \\ = \sum\limits_{T=1}^{n}\lfloor \frac{n}{T} \rfloor*\lfloor \frac{m}{T} \rfloor*\sum\limits_{d \mid T}d^x*\mu(\frac{T}{d}) \\ \end{array}
i=1∑nj=1∑mgcd(i,j)x=k=1∑ni=1∑nj=1∑m[gcd(i,j)==k]∗kx=k=1∑nkx∗i=1∑⌊kn⌋j=1∑⌊km⌋[gcd(i,j)==1]=k=1∑nkx∗d=1∑⌊kn⌋μ(d)∗⌊k∗dn⌋∗⌊k∗dm⌋=T=1∑n⌊Tn⌋∗⌊Tm⌋∗d∣T∑dx∗μ(dT)
发现
f
(
x
)
=
d
x
f(x)=d^x
f(x)=dx 是个完全积性函数,当然也是积性函数。
∴
g
(
n
)
=
∑
d
∣
n
d
x
∗
μ
(
n
d
)
=
(
f
∗
μ
)
(
n
)
\therefore g(n)=\sum\limits_{d \mid n}d^x*\mu(\frac{n}{d})=(f*\mu)_{(n)}
∴g(n)=d∣n∑dx∗μ(dn)=(f∗μ)(n) 也是积性函数。
设
n
n
n 的最小质因子为
p
p
p,
x
=
n
p
x = \frac{n}{p}
x=pn
考虑求
g
(
n
)
g(n)
g(n) :
当
n
∈
p
r
i
m
e
n \in prime
n∈prime 时,
g
(
n
)
=
μ
(
1
)
∗
n
x
+
μ
(
n
)
∗
1
x
=
n
x
−
1
g(n)=\mu(1)*n^x+\mu(n)*1^x=n^x-1
g(n)=μ(1)∗nx+μ(n)∗1x=nx−1;
当
n
=
p
k
n = p^k
n=pk 时, 显然
μ
(
p
i
)
=
0
(
i
≥
2
)
⇒
g
(
n
)
=
n
x
−
(
n
p
)
x
=
(
n
p
)
x
∗
g
(
p
)
\mu(p^i)=0(i \geq 2) \Rightarrow g(n)=n^x-(\frac{n}{p})^x=(\frac{n}{p})^x*g(p)
μ(pi)=0(i≥2)⇒g(n)=nx−(pn)x=(pn)x∗g(p);
当
p
∤
x
p \nmid x
p∤x 时, 则
g
c
d
(
x
,
p
)
=
1
⇒
g
(
n
)
=
g
(
x
)
∗
g
(
p
)
gcd(x, p)=1 \Rightarrow g(n)=g(x)*g(p)
gcd(x,p)=1⇒g(n)=g(x)∗g(p);
当
p
∣
x
p \mid x
p∣x 时, 则
g
(
n
)
=
g
(
n
p
k
)
∗
g
(
p
k
)
=
g
(
n
p
k
)
∗
g
(
p
)
∗
p
(
k
−
1
)
∗
x
=
g
(
n
p
k
)
∗
g
(
p
)
∗
p
(
k
−
2
)
∗
x
∗
p
x
=
g
(
n
p
k
)
∗
g
(
p
k
−
1
)
∗
p
k
=
g
(
x
)
∗
p
k
g(n)=g(\frac{n}{p^k})*g(p^k)=g(\frac{n}{p^k})*g(p)*p^{(k-1)*x}=g(\frac{n}{p^k})*g(p)*p^{(k-2)*x}*p^{x}=g(\frac{n}{p^k})*g(p^{k-1})*p^k=g(x)*p^k
g(n)=g(pkn)∗g(pk)=g(pkn)∗g(p)∗p(k−1)∗x=g(pkn)∗g(p)∗p(k−2)∗x∗px=g(pkn)∗g(pk−1)∗pk=g(x)∗pk
(
p
k
∣
n
∧
p
k
+
1
∤
n
,
k
∈
N
∗
,
k
≥
2
)
(p^k \mid n \land p^{k+1} \nmid n,k\in \mathbb{N^*},k \geq 2)
(pk∣n∧pk+1∤n,k∈N∗,k≥2)。
和
e
.
g
.
5
e.g.5
e.g.5 的筛法大同小异。
之后
O
(
n
)
O(\sqrt{n})
O(n) 求解即可。
e . g . 7 e.g.7 e.g.7
求
∑
i
=
1
n
∑
j
=
1
m
φ
(
i
∗
j
)
\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\varphi(i*j)
i=1∑nj=1∑mφ(i∗j)
S
o
l
u
t
i
o
n
:
Solution:
Solution:
显然
φ
(
i
∗
j
)
\varphi(i*j)
φ(i∗j) 不好处理,考虑将其转化。
结论:
φ
(
i
)
∗
φ
(
j
)
∗
g
c
d
(
i
,
j
)
=
φ
(
i
∗
j
)
∗
φ
(
g
c
d
(
i
,
j
)
)
\varphi(i)*\varphi(j)*gcd(i,j)=\varphi(i*j)*\varphi(gcd(i,j))
φ(i)∗φ(j)∗gcd(i,j)=φ(i∗j)∗φ(gcd(i,j))
以下给出该结论的证明。
P
r
o
o
f
:
Proof:
Proof:
设
S
=
{
x
∣
x
∈
p
r
i
m
e
∧
x
∣
i
}
,
T
=
{
x
∣
x
∈
p
r
i
m
e
∧
x
∣
j
}
S=\{x \mid x \in prime \land x \mid i\},T=\{x \mid x \in prime \land x \mid j\}
S={x∣x∈prime∧x∣i},T={x∣x∈prime∧x∣j} ,则
S
∪
T
=
{
x
∣
x
∈
p
r
i
m
e
∧
x
∣
(
i
∗
j
)
}
,
S
∩
T
=
{
x
∣
x
∈
p
r
i
m
e
∧
x
∣
g
c
d
(
i
,
j
)
}
S \cup T = \{x \mid x \in prime \land x \mid (i*j)\},S \cap T = \{x \mid x \in prime \land x \mid gcd(i,j)\}
S∪T={x∣x∈prime∧x∣(i∗j)},S∩T={x∣x∈prime∧x∣gcd(i,j)}
φ
(
i
)
∗
φ
(
j
)
=
i
∗
∏
x
∈
S
x
−
1
x
∗
j
∗
∏
x
∈
T
x
−
1
x
=
i
∗
j
∗
∏
x
∈
(
S
∪
T
)
x
−
1
x
∗
∏
x
∈
(
S
∩
T
)
x
−
1
x
=
φ
(
i
∗
j
)
∗
φ
(
g
c
d
(
i
,
j
)
)
g
c
d
(
i
,
j
)
\begin{array}{l} \quad \varphi(i)*\varphi(j) \\ = i*\prod\limits_{x \in S} \frac{x-1}{x}*j*\prod\limits_{x \in T}\frac{x - 1}{x} \\ = i*j*\prod\limits_{x \in (S \cup T)}\frac{x-1}{x}*\prod\limits_{x \in (S \cap T)}\frac{x-1}{x}\\ = \frac{\varphi(i*j)*\varphi(gcd(i,j))}{gcd(i,j)} \\ \end{array}
φ(i)∗φ(j)=i∗x∈S∏xx−1∗j∗x∈T∏xx−1=i∗j∗x∈(S∪T)∏xx−1∗x∈(S∩T)∏xx−1=gcd(i,j)φ(i∗j)∗φ(gcd(i,j))
∴
∑
i
=
1
n
∑
j
=
1
m
φ
(
i
∗
j
)
=
∑
i
=
1
n
∑
j
=
1
m
φ
(
i
)
∗
φ
(
j
)
∗
g
c
d
(
i
,
j
)
φ
(
g
c
d
(
i
,
j
)
)
=
∑
k
=
1
n
∑
i
=
1
n
∑
j
=
1
m
[
g
c
d
(
i
,
j
)
=
=
k
]
∗
φ
(
i
)
∗
φ
(
j
)
∗
k
φ
(
k
)
=
∑
k
=
1
n
k
φ
(
k
)
∑
i
=
1
⌊
n
k
⌋
∑
j
=
1
⌊
m
k
⌋
[
g
c
d
(
i
,
j
)
=
=
1
]
∗
φ
(
i
∗
k
)
∗
φ
(
j
∗
k
)
=
∑
k
=
1
n
k
φ
(
k
)
∑
d
=
1
⌊
n
k
⌋
μ
(
d
)
∗
∑
i
=
1
⌊
n
k
∗
d
⌋
∑
j
=
1
⌊
m
k
∗
d
⌋
φ
(
i
∗
k
∗
d
)
∗
φ
(
j
∗
k
∗
d
)
=
∑
T
=
1
n
∑
d
∣
T
d
φ
(
d
)
∗
μ
(
T
d
)
∗
∑
i
=
1
⌊
n
T
⌋
φ
(
i
∗
T
)
∗
∑
j
=
1
⌊
m
T
⌋
φ
(
j
∗
T
)
\begin{array}{l} \therefore \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\varphi(i*j) \\ = \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\frac{\varphi(i)*\varphi(j)*gcd(i,j)}{\varphi(gcd(i,j))} \\ = \sum\limits_{k=1}^{n}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==k]*\frac{\varphi(i)*\varphi(j)*k}{\varphi(k)} \\ = \sum\limits_{k=1}^{n}\frac{k}{\varphi(k)}\sum\limits_{i=1}^{\lfloor \frac{n} {k}\rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k} \rfloor}[gcd(i,j)==1]*\varphi(i*k)*\varphi(j*k) \\ = \sum\limits_{k=1}^{n}\frac{k}{\varphi(k)}\sum\limits_{d=1}^{\lfloor\frac{n}{k}\rfloor}\mu(d)*\sum\limits_{i=1}^{\lfloor \frac{n}{k*d}\rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k*d} \rfloor}\varphi(i*k*d)*\varphi(j*k*d) \\ = \sum\limits_{T=1}^{n}\sum\limits_{d \mid T}\frac{d}{\varphi(d)}*\mu(\frac{T}{d})*\sum\limits_{i=1}^{\lfloor \frac{n}{T}\rfloor}\varphi(i*T)*\sum\limits_{j=1}^{\lfloor \frac{m}{T} \rfloor}\varphi(j*T) \\ \end{array}
∴i=1∑nj=1∑mφ(i∗j)=i=1∑nj=1∑mφ(gcd(i,j))φ(i)∗φ(j)∗gcd(i,j)=k=1∑ni=1∑nj=1∑m[gcd(i,j)==k]∗φ(k)φ(i)∗φ(j)∗k=k=1∑nφ(k)ki=1∑⌊kn⌋j=1∑⌊km⌋[gcd(i,j)==1]∗φ(i∗k)∗φ(j∗k)=k=1∑nφ(k)kd=1∑⌊kn⌋μ(d)∗i=1∑⌊k∗dn⌋j=1∑⌊k∗dm⌋φ(i∗k∗d)∗φ(j∗k∗d)=T=1∑nd∣T∑φ(d)d∗μ(dT)∗i=1∑⌊Tn⌋φ(i∗T)∗j=1∑⌊Tm⌋φ(j∗T)
式子已经化到最简了,考虑预处理某些
∑
\sum
∑ 。
为了便于表达,引入下列函数。
- f ( n ) = ∑ d ∣ n d φ ( d ) ∗ μ ( n d ) f(n)=\sum\limits_{d \mid n}\frac{d}{\varphi(d)}*\mu(\frac{n}{d}) f(n)=d∣n∑φ(d)d∗μ(dn)
- g ( k , n ) = ∑ i = 1 n φ ( i ∗ k ) g(k,n)=\sum\limits_{i=1}^{n}\varphi(i*k) g(k,n)=i=1∑nφ(i∗k)
-
h
(
x
,
y
,
n
)
=
∑
T
=
1
n
∑
d
∣
T
d
φ
(
d
)
∗
μ
(
T
d
)
∗
∑
i
=
1
x
φ
(
i
∗
T
)
∗
∑
j
=
1
y
φ
(
j
∗
T
)
h(x,y,n)=\sum\limits_{T=1}^{n}\sum\limits_{d \mid T}\frac{d}{\varphi(d)}*\mu(\frac{T}{d})*\sum\limits_{i=1}^{x}\varphi(i*T)*\sum\limits_{j=1}^{y}\varphi(j*T)
h(x,y,n)=T=1∑nd∣T∑φ(d)d∗μ(dT)∗i=1∑xφ(i∗T)∗j=1∑yφ(j∗T)
考虑计算这三个函数。
对于 f f f ,可以用类似埃氏筛法的方式,在预处理出 φ \varphi φ 函数的情况下 O ( n ln n ) O(n \ln n) O(nlnn) 求出。
对于 g g g ,有递推式 g ( k , n ) = g ( k , n − 1 ) + φ ( n ∗ k ) g(k, n)=g(k,n-1)+\varphi(n*k) g(k,n)=g(k,n−1)+φ(n∗k) 。由于总的有用的状态只有 O ( n ln n ) O(n \ln n) O(nlnn) 级别,开 n n n 个 v e c t o r vector vector 预处理即可。
对于 h h h ,有递推式 h ( x , y , n ) = h ( x , y , n − 1 ) + f ( n ) ∗ g ( n , x ) ∗ g ( n , y ) h(x,y,n)=h(x,y,n-1)+f(n)*g(n,x)*g(n,y) h(x,y,n)=h(x,y,n−1)+f(n)∗g(n,x)∗g(n,y) 。
全部预处理空间复杂度过高,考虑设置一个上限 t o p top top 。
预处理所有 x , y ≤ t o p x,y \leq top x,y≤top 的 h h h 。
对于 ⌊ n T ⌋ ≤ t o p \lfloor \frac{n}{T} \rfloor \leq top ⌊Tn⌋≤top 的 T T T ,可以在 O ( n ) O(\sqrt{n}) O(n) 的时间内全部计算出来。
对于 ⌊ n T ⌋ > t o p \lfloor \frac{n}{T} \rfloor > top ⌊Tn⌋>top 的 T T T ,有 T < n t o p T < \frac{n}{top} T<topn ,直接用 f ( T ) ∗ g ( T , ⌊ N T ⌋ ) ∗ g ( T , ⌊ m T ⌋ ) f(T)*g(T,\lfloor \frac{N}{T}\rfloor)*g(T,\lfloor \frac{m}{T} \rfloor) f(T)∗g(T,⌊TN⌋)∗g(T,⌊Tm⌋) 暴力计算,时间复杂度为 O ( n t o p ) O(\frac{n}{top}) O(topn)。
总时间复杂度: O ( n ln n + t o p 2 ∗ n + q ∗ ( n t o p + n ) ) O(n \ln n + top^2*n+q*(\frac{n}{top}+\sqrt{n})) O(nlnn+top2∗n+q∗(topn+n))。
当 t o p = n 3 top = \sqrt[3]{n} top=3n 时取到最小值 O ( n 5 3 ) O(n^\frac{5}{3}) O(n35)。