杜教筛
求积性函数
f(x)
f
(
x
)
的前缀和
S(n)=∑ni=1f(i)
S
(
n
)
=
∑
i
=
1
n
f
(
i
)
狄利克雷卷积:
(g∗f)(x)=∑d|xg(d)f(xd)
(
g
∗
f
)
(
x
)
=
∑
d
|
x
g
(
d
)
f
(
x
d
)
∑x=1n(g∗f)(x)=∑x=1n∑d|xg(d)f(xd)
∑
x
=
1
n
(
g
∗
f
)
(
x
)
=
∑
x
=
1
n
∑
d
|
x
g
(
d
)
f
(
x
d
)
=∑d=1n∑d|xng(d)f(xd)
=
∑
d
=
1
n
∑
d
|
x
n
g
(
d
)
f
(
x
d
)
=∑d=1ng(d)∑x=1n/df(x)
=
∑
d
=
1
n
g
(
d
)
∑
x
=
1
n
/
d
f
(
x
)
=∑d=1ng(d)S(⌊nd⌋)
=
∑
d
=
1
n
g
(
d
)
S
(
⌊
n
d
⌋
)
即
∑x=1n(g∗f)(x)=∑d=1ng(d)S(⌊nd⌋)
∑
x
=
1
n
(
g
∗
f
)
(
x
)
=
∑
d
=
1
n
g
(
d
)
S
(
⌊
n
d
⌋
)
我们有
g(1)S(n)=∑i=1ng(i)S(⌊ni⌋)−∑i=2ng(i)S(⌊ni⌋)
g
(
1
)
S
(
n
)
=
∑
i
=
1
n
g
(
i
)
S
(
⌊
n
i
⌋
)
−
∑
i
=
2
n
g
(
i
)
S
(
⌊
n
i
⌋
)
g(1)S(n)=∑i=1n(g∗f)(i)−∑i=2ng(i)S(⌊ni⌋)
g
(
1
)
S
(
n
)
=
∑
i
=
1
n
(
g
∗
f
)
(
i
)
−
∑
i
=
2
n
g
(
i
)
S
(
⌊
n
i
⌋
)
假设我们要求
S(n)=∑ni=1μ(i)
S
(
n
)
=
∑
i
=
1
n
μ
(
i
)
我们只需要找出
g(x)
g
(
x
)
使得
(g∗f)(x)
(
g
∗
f
)
(
x
)
的前缀和好算就可以了
我们知道
∑d|nμ(d)=[n=1]
∑
d
|
n
μ
(
d
)
=
[
n
=
1
]
那么我们可以设
g(x)=1
g
(
x
)
=
1
这样的话
(g∗f)(x)=∑d|xf(d)g(dx)=[x=1]
(
g
∗
f
)
(
x
)
=
∑
d
|
x
f
(
d
)
g
(
d
x
)
=
[
x
=
1
]
∑i=1x(g∗f)(x)=1
∑
i
=
1
x
(
g
∗
f
)
(
x
)
=
1
g(1)S(n)=1−∑i=2nS(⌊ni⌋)
g
(
1
)
S
(
n
)
=
1
−
∑
i
=
2
n
S
(
⌊
n
i
⌋
)
后面的部分可以数论分块
首先先线性筛出前面一部分(
1000000
1000000
)
μ(x)
μ
(
x
)
的前缀和,后面记忆化搜索即可
再假设我们要求
S(n)=∑ni=1ϕ(i)
S
(
n
)
=
∑
i
=
1
n
ϕ
(
i
)
我们知道
∑d|nϕ(d)=n
∑
d
|
n
ϕ
(
d
)
=
n
(g∗f)(x)=∑d|xf(d)g(xd)
(
g
∗
f
)
(
x
)
=
∑
d
|
x
f
(
d
)
g
(
x
d
)
我们发现如果令
g(x)=1
g
(
x
)
=
1
(g∗f)(x)=∑d|xf(d)=x
(
g
∗
f
)
(
x
)
=
∑
d
|
x
f
(
d
)
=
x
g(1)S(n)=∑i=1ni−∑i=2ng(i)S(⌊ni⌋)
g
(
1
)
S
(
n
)
=
∑
i
=
1
n
i
−
∑
i
=
2
n
g
(
i
)
S
(
⌊
n
i
⌋
)
S(n)=x(x+1)2−∑i=2nS(⌊ni⌋)
S
(
n
)
=
x
(
x
+
1
)
2
−
∑
i
=
2
n
S
(
⌊
n
i
⌋
)
51nod1238 最小公倍数之和V3
求
∑i=1n∑j=1nlcm(i,j)
∑
i
=
1
n
∑
j
=
1
n
l
c
m
(
i
,
j
)
ans=∑i=1n∑j=1nijgcd(i,j)
a
n
s
=
∑
i
=
1
n
∑
j
=
1
n
i
j
g
c
d
(
i
,
j
)
=∑d=1n1d∑i=1n∑j=1nij [gcd(i,j)=d]
=
∑
d
=
1
n
1
d
∑
i
=
1
n
∑
j
=
1
n
i
j
[
g
c
d
(
i
,
j
)
=
d
]
=∑d=1n1d∑i=1n/d∑j=1n/did jd [gcd(i,j)=1]
=
∑
d
=
1
n
1
d
∑
i
=
1
n
/
d
∑
j
=
1
n
/
d
i
d
j
d
[
g
c
d
(
i
,
j
)
=
1
]
=∑d=1nd∑i=1n/d∑j=1n/dij [gcd(i,j)=1]
=
∑
d
=
1
n
d
∑
i
=
1
n
/
d
∑
j
=
1
n
/
d
i
j
[
g
c
d
(
i
,
j
)
=
1
]
设
f(x)=∑i=1x∑j=1xij[gcd(i,j)=1]
f
(
x
)
=
∑
i
=
1
x
∑
j
=
1
x
i
j
[
g
c
d
(
i
,
j
)
=
1
]
=2(∑i=1xi∑j=1ij[gcd(i,j)=1])−1
=
2
(
∑
i
=
1
x
i
∑
j
=
1
i
j
[
g
c
d
(
i
,
j
)
=
1
]
)
−
1
=2(∑i=1xi iϕ(i)+[i=1]2)−1
=
2
(
∑
i
=
1
x
i
i
ϕ
(
i
)
+
[
i
=
1
]
2
)
−
1
=(∑i=1xi2 ϕ(i)+[i=1])−1
=
(
∑
i
=
1
x
i
2
ϕ
(
i
)
+
[
i
=
1
]
)
−
1
=∑i=1xi2 ϕ(i)
=
∑
i
=
1
x
i
2
ϕ
(
i
)
代回原式子
ans=∑d=1nd∑i=1n/di2 ϕ(i)
a
n
s
=
∑
d
=
1
n
d
∑
i
=
1
n
/
d
i
2
ϕ
(
i
)
设
S(n)=∑i=1ni2 ϕ(i)
S
(
n
)
=
∑
i
=
1
n
i
2
ϕ
(
i
)
S(n)=∑i=1n(g∗f)(i)−∑i=2ng(i)S(ni)
S
(
n
)
=
∑
i
=
1
n
(
g
∗
f
)
(
i
)
−
∑
i
=
2
n
g
(
i
)
S
(
n
i
)
推一下卷积
∑i=1n(g∗f)(x)=∑i=1n∑d|if(d)g(id)
∑
i
=
1
n
(
g
∗
f
)
(
x
)
=
∑
i
=
1
n
∑
d
|
i
f
(
d
)
g
(
i
d
)
=∑i=1n∑d|id2ϕ(d)g(id)
=
∑
i
=
1
n
∑
d
|
i
d
2
ϕ
(
d
)
g
(
i
d
)
我们发现设
g(x)=x2
g
(
x
)
=
x
2
就可以把
d2
d
2
约掉
=∑i=1n∑d|id2ϕ(d)i2d2
=
∑
i
=
1
n
∑
d
|
i
d
2
ϕ
(
d
)
i
2
d
2
=∑i=1ni2∑d|iϕ(d)
=
∑
i
=
1
n
i
2
∑
d
|
i
ϕ
(
d
)
=∑i=1ni3
=
∑
i
=
1
n
i
3
=(n(n+1)2)2
=
(
n
(
n
+
1
)
2
)
2
g(1)S(n)=∑i=1n(g∗f)(x)−∑i=2ng(i)S(ni)
g
(
1
)
S
(
n
)
=
∑
i
=
1
n
(
g
∗
f
)
(
x
)
−
∑
i
=
2
n
g
(
i
)
S
(
n
i
)
S(n)=(n(n+1)2)2−∑i=2ni2S(ni)
S
(
n
)
=
(
n
(
n
+
1
)
2
)
2
−
∑
i
=
2
n
i
2
S
(
n
i
)
我们知道
∑i=1ni2=n(n+1)(2n+1)6
∑
i
=
1
n
i
2
=
n
(
n
+
1
)
(
2
n
+
1
)
6
我们可以杜教筛
S(n)
S
(
n
)
ans=∑d=1nd S(nd)
a
n
s
=
∑
d
=
1
n
d
S
(
n
d
)