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=1mμ(i×n)
m ≤ 2 × 1 0 9 , n ≤ 1 0 12 m\\le 2\\times 10^9,n\\le 10^{12} m2×109,n1012

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=1mμ(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)=1f(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=1mμ(i×n)=i=1mμ(i×n)[gcd(i,n)==1]=i=1mμ(i)×μ(n)[gcd(i,n)==1]=μ(n)×i=1mμ(i)×dgcd(i,n)μ(d)=μ(n)×d=1mμ(d)i=1mμ(i)[di][dn]=μ(n)×dn&&dmμ(d)i=1dmμ(i×d)=μ(n)×dn&&dmμ(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=1mμ(i)​, m ≤ 2 × 1 0 9 m\\le 2\\times10^{9} m2×109,杜教筛计算即可。

此时直接递归计算时间复杂度为 O ( 我 也 不 知 道 多 少 反 正 就 是 T L E 了 ) O(我也不知道多少反正就是TLE了) O(TLE)

由于此时 n n n​ 中没有平方因子,所以我们可以直接枚举质因子拼凑出 n n n

n ≤ 1 0 12 n\\le 10^{12} n1012​,显然最多只有 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. Easy Math

ACM-ICPC 2018 徐州赛区网络预赛 D. EasyMath

ICPC 2018 徐州赛区网络赛

ACM-ICPC 2018 徐州赛区网络预赛 D.easy math

2018 ICPC 徐州网络赛

ACM-ICPC 2018 徐州赛区(网络赛)