P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)

Posted 繁凡さん

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)相关的知识,希望对你有一定的参考价值。

整理的算法模板合集: ACM模板

点我看算法全家桶系列!!!

实际上是一个全新的精炼模板整合计划


P4619 [SDOI2018]旧试题(莫比乌斯反演,三元环计数)

Problem

计算:

∑ i = 1 A ∑ j = 1 B ∑ k = 1 C d ( i j k ) m o d    ( 1 0 9 + 7 ) \\sum_{i=1}^{A}\\sum_{j=1}^{B}\\sum_{k=1}^{C}d(ijk) \\mod (10^9+7) i=1Aj=1Bk=1Cd(ijk)mod(109+7)

其中 d ( i j k ) d(ijk) d(ijk) 表示 i × j × k i×j×k i×j×k 的约数个数

1 ≤ T ≤ 10 , 1 ≤ A , B , C ≤ 1 0 5 , 1 ≤ ∑ max ⁡ ( A , B , C ) ≤ 2 × 1 0 5 1 ≤ T ≤ 10, 1 ≤ A, B, C ≤ 10^5, 1 ≤ \\sum{\\max(A, B, C)} ≤ 2 \\times 10^5 1T10,1A,B,C105,1max(A,B,C)2×105

Solution

首先,我们先来一波经典反演:

第一步的结论证明:SDOI2015 约数个数和(莫比乌斯反演经典、双上限整除分块)

在这里插入图片描述
好耶,基础的反演到此结束,接下来才是重头戏。

首先我们显然可以根据输入的 A , B , C A,B,C A,B,C O ( n l o g n ) O(nlogn) O(nlogn) 下预处理出来所有可能需要用到的 g ( ⌊ A lcm ( d 1 , d 3 ) ⌋ ) , g ( B lcm ( d 2 , d 1 ) ) , g ( C lcm ( d 2 , d 3 ) ) g(\\lfloor\\cfrac{A}{\\text{lcm}(d_1,d_3)}\\rfloor),g(\\cfrac{B}{\\text{lcm}(d_2,d_1)}),g(\\cfrac{C}{\\text{lcm}(d_2,d_3)}) g(lcm(d1,d3)A)g(lcm(d2,d1)B)g(lcm(d2,d3)C)

然后发现我们反演的出来的这个式子直接去计算的话需要 O ( n 3 ) O(n^3) O(n3) 三重枚举,根本没法计算。

考虑优化。

显然如果我们直接 O ( n 3 ) O(n^3) O(n3) 三重枚举的话,会枚举到很多权值为 0 0 0 d 1 , d 2 , d 3 d_1,d_2,d_3 d1,d2,d3,即无贡献的无效枚举。

显然无效的贡献有:

  • 枚举到的 d 1 , d 2 , d 3 d_1,d_2,d_3 d1,d2,d3 不合法
    lcm ( d 1 , d 2 ) > A ⇒ ⌊ A lcm ( d 1 , d 2 ) ⌋ = 0 \\text{lcm}(d_1,d_2)>A\\Rightarrow \\lfloor\\cfrac{A}{\\text{lcm}(d_1,d_2)}\\rfloor=0 lcm(d1,d2)>Alcm(d1,d2)A=0

  • μ ( d 1 ) = 0 ∣ ∣ μ ( d 2 ) = 0 ∣ ∣ μ ( d 3 ) = 0 \\mu(d_1)=0 \\mid\\mid\\mu(d_2)=0\\mid\\mid\\mu(d_3)=0 μ(d1)=0μ(d2)=0μ(d3)=0

我们顺着这个思路去走,我们能不能只枚举合法的 d 1 , d 2 , d 3 d_1,d_2,d_3 d1,d2,d3,即同时满足 μ ( d 1 ) ≠ 0 \\mu(d_1)\\neq0 μ(d1)=0 μ ( d 2 ) ≠ 0 \\mu(d_2)\\neq0 μ(d2)=0 μ ( d 3 ) = 0 \\mu(d_3)=0 μ(d3)=0 lcm ( d 1 , d 2 ) ≤ max ⁡ ( A , B , C ) \\text{lcm}(d_1,d_2)\\le\\max(A, B,C) lcm(d1,d2)max(A,B,C) lcm ( d 2 , d 3 ) ≤ max ⁡ ( A , B , C ) \\text{lcm}(d_2,d_3)\\le\\max(A, B,C) lcm(d2,d3)max(A,B,C) lcm ( d 1 , d 3 ) ≤ max ⁡ ( A , B , C ) \\text{lcm}(d_1,d_3)\\le\\max(A, B,C) lcm(d1,d3)max(A,B,C)

所以我们进行大胆的尝试:建图减少无效的枚举!

将任意两个合法的点 u , v u,v u,v (其中 u , v ∈ [ 1 , max ⁡ ( A , B , C ) ] u,v\\in[1,\\max(A,B,C)] u,v[1,max(A,B,C)])连边!

即任意两个合法的点 u , v u,v u,v μ ( u ) ≠ 0 \\mu(u)\\neq0 μ(u

以上是关于P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)的主要内容,如果未能解决你的问题,请参考以下文章

P4619 [SDOI2018]旧试题

bzoj [SDOI2014]数表 莫比乌斯反演 BIT

[BZOJ4816][SDOI2017]数字表格(莫比乌斯反演)

BZOJ 3529: [Sdoi2014]数表 [莫比乌斯反演 树状数组]

BZOJ_3994_[SDOI2015]约数个数和_莫比乌斯反演

[SDOI2015] 约数个数和 (莫比乌斯反演)