2018 ICPC 徐州网络赛 D. Easy Math(思维,反演,杜教筛)
Posted 繁凡さん
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018 ICPC 徐州网络赛 D. Easy Math(思维,反演,杜教筛)相关的知识,希望对你有一定的参考价值。
整理的算法模板合集: ACM模板
实际上是一个全新的精炼模板整合计划
题目链接
https://nanti.jisuanke.com/t/A2003
Problem
计算
∑
i
=
1
m
μ
(
i
×
n
)
\\sum_{i=1}^m\\mu(i \\times n)
i=1∑mμ(i×n)
m
≤
2
×
1
0
9
,
n
≤
1
0
12
m\\le 2\\times 10^9,n\\le 10^{12}
m≤2×109,n≤1012
Solution
设 f ( m , n ) = ∑ i = 1 m μ ( i × n ) f(m,n)=\\displaystyle \\sum_{i=1}^m\\mu(i \\times n) f(m,n)=i=1∑mμ(i×n)
显然若 i × n i\\times n i×n 含有平方因子,答案即为 0 0 0 ⇒ \\Rightarrow ⇒ gcd ( i , n ) ≠ 1 ⇒ f ( m , n ) = 0 \\gcd(i,n)\\neq 1\\Rightarrow {f(m,n)} = 0 gcd(i,n)=1⇒f(m,n)=0
借此条件考虑进行常规反演:
f
(
m
,
n
)
=
∑
i
=
1
m
μ
(
i
×
n
)
=
∑
i
=
1
m
μ
(
i
×
n
)
[
gcd
(
i
,
n
)
=
=
1
]
=
∑
i
=
1
m
μ
(
i
)
×
μ
(
n
)
[
gcd
(
i
,
n
)
=
=
1
]
=
μ
(
n
)
×
∑
i
=
1
m
μ
(
i
)
×
∑
d
∣
gcd
(
i
,
n
)
μ
(
d
)
=
μ
(
n
)
×
∑
d
=
1
m
μ
(
d
)
∑
i
=
1
m
μ
(
i
)
[
d
∣
i
]
[
d
∣
n
]
=
μ
(
n
)
×
∑
d
∣
n
&
&
d
≤
m
μ
(
d
)
∑
i
=
1
⌊
m
d
⌋
μ
(
i
×
d
)
=
μ
(
n
)
×
∑
d
∣
n
&
&
d
≤
m
μ
(
d
)
f
(
⌊
m
d
⌋
,
d
)
\\begin{aligned} f(m,n) &= \\sum_{i=1}^m\\mu(i\\times n) \\\\ &= \\sum_{i=1}^m\\mu(i\\times n)[\\gcd(i,n)==1]\\\\ &= \\sum_{i=1}^m\\mu(i)\\times \\mu(n)[\\gcd(i,n)==1]\\\\ &=\\mu(n)\\times \\sum_{i=1}^m\\mu(i)\\times\\sum_{d|\\gcd(i,n)}\\mu(d) \\\\ &=\\mu(n)\\times\\sum_{d=1}^{m}\\mu(d)\\sum_{i=1}^m\\mu(i)[d \\mid i][d\\mid n] \\\\ &= \\mu(n)\\times\\sum_{d\\mid n \\&\\&d \\le m}\\mu(d) \\sum_{i=1}^{\\left\\lfloor\\frac m d \\right\\rfloor}\\mu(i\\times d) \\\\ &= \\mu(n)\\times \\sum_{d\\mid n\\&\\& d\\le m}\\mu(d)f(\\left\\lfloor\\frac m d \\right\\rfloor,d) \\end{aligned}
f(m,n)=i=1∑mμ(i×n)=i=1∑mμ(i×n)[gcd(i,n)==1]=i=1∑mμ(i)×μ(n)[gcd(i,n)==1]=μ(n)×i=1∑mμ(i)×d∣gcd(i,n)∑μ(d)=μ(n)×d=1∑mμ(d)i=1∑mμ(i)[d∣i][d∣n]=μ(n)×d∣n&&d≤m∑μ(d)i=1∑⌊dm⌋μ(i×d)=μ(n)×d∣n&&d≤m∑μ(d)f(⌊dm⌋,d)
显然直接记忆化搜索即可。
临界条件:
-
f ( 0 , n ) = 0 f(0,n)=0 f(0,n)=0
-
f ( 1 , n ) = μ ( n ) f(1,n)=\\mu(n) f(1,n)=μ(n)
-
f ( m , 1 ) = ∑ i = 1 m μ ( i ) \\displaystyle f(m,1)=\\sum_{i=1}^m\\mu(i) f(m,1)=i=1∑mμ(i), m ≤ 2 × 1 0 9 m\\le 2\\times10^{9} m≤2×109,杜教筛计算即可。
此时直接递归计算时间复杂度为 O ( 我 也 不 知 道 多 少 反 正 就 是 T L E 了 ) O(我也不知道多少反正就是TLE了) O(我也不知道多少反正就是TLE了)
由于此时 n n n 中没有平方因子,所以我们可以直接枚举质因子拼凑出 n n n
n ≤ 1 0 12 n\\le 10^{12} n≤1012,显然最多只有 2 × 3 × 5 × 7 × 11 × 13 × 17 × 19 × 23 × 29 × 31 = 200560490130 < 1 × 1 0 12 2\\times 3\\times 5\\times 7\\times 11\\times 13\\times 17\\times 19\\times 23\\times 29\\times 31=200560490130<1\\times 10^{12} 2×3×5×7×11×13×17×19×23×29×31=200560490130<1×1012,此时每次枚举 n n n 的因子最多只需要枚举 11 11 11 次,从 n \\sqrt n n
ACM-ICPC 2018 徐州赛区网络预赛 D. EasyMath