LibreOJ #2095. -「CQOI2015」选数 - 莫比乌斯反演+杜教筛+整除分块

Posted Chivas_/Regal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LibreOJ #2095. -「CQOI2015」选数 - 莫比乌斯反演+杜教筛+整除分块相关的知识,希望对你有一定的参考价值。

题目:
在这里插入图片描述
思路:
题意让求:
∑ i 1 = L H ∑ i 2 = L H . . . . ∑ i n = L H [ g c d = k ] \\sum_{i_1=L}^H\\sum_{i_2=L}^H....\\sum_{i_n=L}^H[gcd=k] i1=LHi2=LH....in=LH[gcd=k]

所以我们令:
f ( k ) = ∑ i 1 = L H ∑ i 2 = L H . . . . ∑ i n = L H [ g c d = k ] f(k)=\\sum_{i_1=L}^H\\sum_{i_2=L}^H....\\sum_{i_n=L}^H[gcd=k] f(k)=i1=LHi2=LH....in=LH[gcd=k]

为满足:
F ( k ) = ∑ k d f ( d ) F(k)=\\sum_{\\frac kd}f(d) F(k)=dkf(d)

令:
F ( k ) = ∑ i 1 = L H ∑ i 2 = L H . . . . ∑ i n = L H [ k ∣ g c d ] F(k) = \\sum_{i_1=L}^H\\sum_{i_2=L}^H....\\sum_{i_n=L}^H[k|gcd] F(k)=i1=LHi2=LH....in=LH[kgcd]

为了使每个i都是k的倍数保证每次枚举都是可以使得 [ k ∣ g c d ] = 1 [k|gcd]=1 [kgcd]=1
我们设 i ′ = i k i'=\\frac ik i=ki,枚举 i ′ i' i,也就是 k k k的倍数
得到:
F ( k ) = ∑ i 1 ′ = L − 1 k H k ∑ i 2 ′ = L − 1 k H k . . . . ∑ i n ′ = L − 1 k H k 1 F(k) = \\sum_{i_1'=\\frac{L-1}{k}}^\\frac Hk\\sum_{i_2'=\\frac{L-1}{k}}^\\frac Hk....\\sum_{i_n'=\\frac{L-1}{k}}^\\frac Hk1 F(k)=i1=kL1kHi2=kL1kH....in=kL1kH1

可以化简为:
F ( k ) = ( ⌊ H k ⌋ − ⌊ L − 1 k ⌋ ) n F(k)=(\\left \\lfloor \\frac{H}{k} \\right \\rfloor - \\left \\lfloor \\frac{L-1}{k} \\right \\rfloor )^n F(k)=(kHkL1)n

由莫反定理得:
f ( k ) = ∑ k ∣ d μ ( d k ) F ( d ) f(k)=\\sum_{k|d}\\mu(\\frac dk)F(d) f(k)=kdμ(kd)F(d)
为了使枚举到的d均为k的倍数
我们设 d ′ = d k H ′ = H k d' = \\frac dk\\quad H'=\\frac Hk d=kdH=kH,此时 d = d ′ k d=d'k d=dk

则:
f ( k ) = ∑ d ′ = 1 H ′ μ ( d ′ ) F ( d ′ k ) f(k)=\\sum_{d'=1}^{H'}\\mu(d')F(d'k) f(k)=d=1Hμ(d)F(dk)

此时 F ( d ′ k ) = ( ⌊ H d ′ k ⌋ − ⌊ L − 1 d ′ k ⌋ ) n F(d'k)=(\\left \\lfloor \\frac{H}{d'k} \\right \\rfloor - \\left \\lfloor \\frac{L-1}{d'k} \\right \\rfloor )^n F(dk以上是关于LibreOJ #2095. -「CQOI2015」选数 - 莫比乌斯反演+杜教筛+整除分块的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ 2095: [Poi2010]Bridges

BZOJ 2095 Poi2010 Bridges

FZU2095 水面高度

IntStream 何时真正关闭? SonarQube S2095 是 IntStream 的误报吗?

zoj 2095 Divisor Summation

洛谷 P2095 营养膳食