zoukankan      html  css  js  c++  java
  • 莫比乌斯反演

    莫比乌斯函数

    关于莫比乌斯函数,它:

    [mu(n)=egin{cases}1&n=1\(-1)^s&n=p1p2……ps\0&otherwiseend{cases} ]

    (n=1)时,(mu(n)=1,)
    (n)的因子之中存在平方数时,(mu(n)=0,)
    (n)(s)个互不相同的质数之积时,(mu(n)=(-1)^s;)
    容易发现:(mu(n))是积性函数;
    我们可以推出,莫比乌斯函数最重要的性质:

    [μ ∗ 1= ε ]

    等价于:

    [sum_{d|n}mu(d)=ε(n) ]

    证明:
    (n=1)时,显然成立;
    (n>1)时,设(n)(s)个不同的质因子且(n)无平方因子(有平方因子项对答案无贡献)
    可以推出:

    [sum_{d|n}mu(d)=sum_{k=0}^s(-1)^kdbinom{s}{k}=(1-1)^s=0 ]

    证明结束

    莫比乌斯变换

    假设有:

    [g(n)=sum_{d|n}f(d) ]

    则称(g)(f)的莫比乌斯变换,(f)(g)的莫比乌斯逆变换。

    [g=f*1 ]

    莫比乌斯反演定理

    对于

    [g=f*1 ]

    其充要条件为:

    [f(n)=sum_{d|n}g(d)mu(frac{n}{d}) ]

    用狄利克雷卷积证明:

    [g=f*1 ]

    等价于

    [f=f*ε=f*1*mu=g*mu ]

    形式2:

    对于

    [F(n)=sumlimits_{n|d}f(d) ]

    充要条件为

    [f(n)=sumlimits_{n|d}mu(frac{d}{n})*F(d) ]

    证明:

    [sumlimits_{n|d}mu(frac{d}{n})*F(d)=sumlimits_{n|d}mu(frac{d}{n})*sumlimits_{d|k}f(k)=sumlimits_{n|k}f(k)*sumlimits_{d|frac{k}{n}}mu(d)=f(n) ]

    莫比乌斯反演容斥

    来看个好玩的题目:

    (1)(n)中无平方数因子数的个数

    [sumlimits_{i=1}^{n}mu^2(i) ]

    考虑一个数(p)如果是质数,那么可以筛掉所有(p^2)的倍数的数字,个数是(lfloorfrac{n}{p^2} floor)

    但是对于不同的(p_1,p_2,lfloorfrac{n}{p_1^2 p_2^2} floor)会被重复删去

    所以这是一个容斥题目

    设一个数字(d)(s)个不同质数的积,那么它对答案的贡献是((-1)^{s}lfloorfrac{n}{d^2} floor)

    如果(d)本身存在平方因子,那么(d)对答案没有贡献

    可以发现,容斥系数即莫比乌斯函数

    因此

    [ret=sumlimits_{i=1}^{n}mu^2(i)=sumlimits_{d=1}^{sqrt{n}}mu(d)lfloorfrac{n}{d^2} floor ]

    此时我们只要枚举到(sqrt{n})

    神仙结论:莫比乌斯反演本身就是对整除关系的容斥

    莫比乌斯反演例题

    部分题目需要用到杜教筛,题目大致按难度排序

    洛谷P3455 [POI2007]ZAP-Queries
    洛谷P2257 YY的GCD
    洛谷P3327 [SDOI2015]约数个数和
    洛谷P3768 简单的数学题
    洛谷P4449 于神之怒加强版
    洛谷P3704 [SDOI2017]数字表格
    洛谷P1587 [NOI2016]循环之美

  • 相关阅读:
    poj 1050
    poj 2479 Maximum sum
    Trie树结构(AC自动机前奏)(转)
    poj 3624(zeroonepack)
    poj 3630(Phone List )
    KMP算法(AC自动机前奏)(转)
    AC自动机(转)
    AC自动机模板(hdu2222)
    Running CMD.EXE as Local System
    什么是WPF(Avalon)
  • 原文地址:https://www.cnblogs.com/knife-rose/p/12014886.html
Copyright © 2011-2022 走看看