• Powerful number


    Powerful number \text{Powerful number} Powerful number

    定义

    PN \text{PN} PN表示 Powerful number \text{Powerful number} Powerful number的集合,记 n n n的质因数分解为 ∏ i = 1 m p i c i \prod_{i=1}^mp_i^{c_i} i=1mpici n ∈ PN n\in \text{PN} nPN当且仅当 ∀ i , c i ≥ 2 \forall i,c_i\ge 2 i,ci2

    性质1 n ∈ PN n\in\text{PN} nPN可以被表示为 a 2 b 3 a^2b^3 a2b3的形式

    性质2 n ∈ PN n\in\text{PN} nPN n ≤ m n\le m nm,这样的数个数为 O ( m ) O(\sqrt m) O(m )级别

    证明: ∫ 1 n n x 2 3 = O ( n ) \int_1^n\sqrt[3]{\frac{n}{x^2}}=O(\sqrt n) 1n3x2n =O(n )

    PN \text{PN} PN

    ∑ i = 1 n f ( i ) \sum_{i=1}^nf(i) i=1nf(i) f ( i ) f(i) f(i)是个积性函数

    要求:

    • 构造积性函数 g ( i ) g(i) g(i),使得 ∀ p ∈ P , g ( p ) = f ( p ) \forall p\in \mathbb{P},g(p)=f(p) pP,g(p)=f(p)
    • g ( i ) g(i) g(i)能够快速求前缀和

    做法:

    构造 f = g ∗ h f=g*h f=gh,其中 ∗ * 表示狄利克雷卷积, h h h显然也为积性函数,故 h ( 1 ) = 1 h(1)=1 h(1)=1,由 f ( p ) = g ( 1 ) h ( p ) + g ( p ) h ( 1 ) , f ( p ) = g ( p ) , p ∈ P f(p)=g(1)h(p)+g(p)h(1),f(p)=g(p),p\in \mathbb{P} f(p)=g(1)h(p)+g(p)h(1),f(p)=g(p),pP,可以得到 h ( p ) = 0 h(p)=0 h(p)=0,所以 h ( i ) > 0 h(i)>0 h(i)>0当且仅当 i ∈ PN i\in\text{PN} iPN
    ∑ i = 1 n f ( i ) = ∑ i = 1 n ∑ j ∣ i h ( j ) g ( i j ) = ∑ j = 1 n h ( j ) ∑ i = 1 ⌊ n j ⌋ g ( i ) \sum_{i=1}^nf(i)=\sum_{i=1}^n\sum_{j|i}h(j)g(\frac{i}{j})=\sum_{j=1}^nh(j)\sum_{i=1}^{\lfloor\frac{n}{j}\rfloor}g(i) i=1nf(i)=i=1njih(j)g(ji)=j=1nh(j)i=1jng(i)
    然后就可以用 d f s dfs dfs枚举 PN \text{PN} PN,顺便求出 h ( i ) h(i) h(i)的值,然后通过快速计算 g g g的前缀和就可以求出 ∑ i = 1 n f ( i ) \sum_{i=1}^nf(i) i=1nf(i)

    分析

    计算 h ( i ) h(i) h(i),可以直接看出通式或者用 h ( p c ) = f ( p c ) − ∑ i = 0 c − 1 h ( p i ) g ( p c − i ) h(p^c)=f(p^c)-\sum_{i=0}^{c-1}h(p^i)g(p^{c-i}) h(pc)=f(pc)i=0c1h(pi)g(pci)的递推式求,后者更加常见, ≤ n \le \sqrt n n 的质数个数为 O ( n log ⁡ n ) O(\frac{\sqrt n}{\log n}) O(lognn ),然后这样递推求 h h h log ⁡ 2 \log^2 log2的,所以总复杂度是 O ( n log ⁡ n ) O(\sqrt n\log n) O(n logn),这个递推式有时也可以根据 g g g的一些特征优化到 log ⁡ \log log

    例题

    例1 hdu7186 Jo loves counting

    ∑ i = 1 n f ( i ) , i = ∑ j = 1 m p j c j , f ( i ) = i ∏ j = 1 m c j \sum_{i=1}^nf(i),i=\sum_{j=1}^mp_j^{c_j},f(i)=\frac{i}{\prod_{j=1}^mc_j} i=1nf(i),i=j=1mpjcj,f(i)=j=1mcji

    solution

    g ( i ) = i g(i)=i g(i)=i,求 h h h时可以优化,所以最终的复杂度为 O ( n ) O(\sqrt n) O(n )

    例2 P5325 【模板】Min_25筛

    ∑ i = 1 n f ( i ) , f ( p k ) = p k ( p k − 1 ) , p ∈ P \sum_{i=1}^nf(i),f(p^k)=p^k(p^k-1),p\in\mathbb{P} i=1nf(i),f(pk)=pk(pk1),pP

    solution

    g ( i ) = i φ ( i ) g(i)=i\varphi(i) g(i)=iφ(i),用杜教筛求 g g g的前缀和,时间复杂度 O ( n 2 3 ) O(n^{\frac{2}{3}}) O(n32)

  • 相关阅读:
    Nginx配置全局https
    应用正太分布_概率密度函数_对数总似然---人工智能工作笔记0021
    小红书全自动加群引流脚本「 软件工具+引流技术教程」
    调优过程中缓存的处理
    K8S的安全机制
    Unity下载资源且保存
    uniapp如何应用onNeedPrivacyAuthorization实现微信小程序隐私政策
    Webpack 什么是loader?什么是plugin?loader与plugin区别是什么?
    NB的Github项目,看到最后一个我惊呆了!
    Linux网络基础2之http
  • 原文地址:https://blog.csdn.net/Z_Y_S_/article/details/126155200