P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)
Posted 繁凡さん
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)相关的知识,希望对你有一定的参考价值。
整理的算法模板合集: ACM模板
实际上是一个全新的精炼模板整合计划
P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)
Problem
Solution
首先根据题意列出答案的暴力表达式:
a
n
s
=
∑
i
=
1
n
[
g
c
d
(
i
,
n
)
=
1
]
i
d
ans=\\sum\\limits_{i=1}^n[gcd(i,n)=1]i^d
ans=i=1∑n[gcd(i,n)=1]id
显然没法直接算,考虑套路莫反
a n s = ∑ i = 1 n [ g c d ( i , n ) = 1 ] i d = ∑ i = 1 n ∑ t ∣ i and t ∣ n μ ( t ) i d = ∑ i = 1 n ∑ t ∣ n μ ( t ) i d [ t ∣ i ] i ⇒ i × t = ∑ t ∣ n μ ( t ) ∑ i = 1 n t ( i × t ) d = ∑ t ∣ n μ ( t ) t d ∑ i = 1 n t i d \\begin{aligned}ans&=\\sum\\limits_{i=1}^n[gcd(i,n)=1]i^d&\\\\& =\\sum\\limits_{i=1}^n\\sum\\limits_{t|i \\ \\text{and}\\ t|n}\\mu(t)i^d&\\\\& =\\sum\\limits_{i=1}^n\\sum\\limits_{t|n}\\mu(t)i^d[t\\ |\\ i]&\\\\& i \\Rightarrow i\\times t &\\\\&=\\sum\\limits_{t|n}\\mu(t)\\sum\\limits_{i=1}^{\\frac{n}{t}}(i\\times t)^d&\\\\& =\\sum\\limits_{t|n}\\mu(t)t^d\\sum\\limits_{i=1}^{\\frac{n}{t}}i^d \\end{aligned} ans=i=1∑n[gcd(i,n)=1]id=i=1∑nt∣i and t∣n∑μ(t)id=i=1∑nt∣n∑μ(t)id[t ∣ i]i⇒i×t=t∣n∑μ(t)i=1∑tn(i×t)d=t∣n∑μ(t)tdi=1∑tnid
显然 ∑ i = 1 n t i d \\sum\\limits_{i=1}^{\\frac{n}{t}}i^d i=1∑tnid 是自然数幂之和,可以将其表示为一个关于 n t \\dfrac{n}{t} tn 的 d + 1 d+1 d+1 次多项式 ∑ i = 0 d + 1 f i ( n t ) i \\sum\\limits_{i=0}^{d+1}f_i(\\dfrac{n}{t})^i i=0∑d+1fi(tn)i,我们可以算出自然数幂之和的前 d + 2 d+2 d+2 项, d + 2 d+2 d+2 项可以确定一个 d + 1 d+1 d+1 项的多项式,我们可以直接用拉格朗日插值法 O ( n ) O(n) O(n) 求出 n n n 次多项式 f f f 的所有系数。
即:
a
n
s
=
∑
t
∣
n
μ
(
t
)
t
d
∑
i
=
0
d
+
1
f
i
(
n
t
)
i
=
∑
t
∣
n
μ
(
t
)
∑
i
=
0
d
+
1
f
i
n
i
t
d
−
i
=
∑
i
=
0
d
+
1
∑
t
∣
n
μ
(
t
)
f
i
n
i
t
d
−
i
=
∑
i
=
0
d
+
1
f
i
n
i
∑
t
∣
n
μ
(
t
)
t
d
−
i
\\begin{aligned}ans&=\\sum\\limits_{t|n}\\mu(t)t^d\\sum\\limits_{i=0}^{d+1}f_i(\\frac{n}{t})^i&\\\\& =\\sum\\limits_{t|n}\\mu(t)\\sum\\limits_{i=0}^{d+1}f_in^it^{d-i}&\\\\& =\\sum\\limits_{i=0}^{d+1}\\sum\\limits_{t|n}\\mu(t)f_in^it^{d-i}&\\\\&=\\sum\\limits_{i=0}^{d+1}f_in^i\\sum\\limits_{t|n}\\mu(t)t^{d-i}\\end{aligned}
ans=t∣n∑μ(t)tdi=0∑d+1fi(tn)i=t∣n∑μ(t)i=0∑d+1finitd−i=i=0∑d+1t∣n∑μ(t)fin< 以上是关于P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)的主要内容,如果未能解决你的问题,请参考以下文章