• 重新认识莫比乌斯函数


    CSDN同步

    默认大家已经会反演。

    考虑一道题目:

    (sum_{i=1}^n mu^2(i)),其中 (n leq 10^{14}).

    没办法操作,考虑感性理解。

    求的是 (1-n) 中无平方因子数的个数。对于每个素数 (p1),因删去 (lfloor frac{n}{p1^2} floor) 个其平方的倍数。

    然后这样也会多做。比如形如 (p1^2p2^2) 的数就被重复删了,于是我们要把这些数加回来。有点像容斥原理?

    真正容斥。

    对于分解质因数后有一个指数 (>1) 的数可以忽略,其对答案无贡献。可分解为形如 (prod limits_{i=1}^p p_i) 形式的,设为 (d),则所有形如 (d^2k) 的数的个数会对答案造成影响,也就是 (lfloor frac{n}{d^2} floor). 但是是加还是减?我们要看 (p) 的奇偶性。也就是其贡献为 ((-1)^p lfloor frac{n}{d^2} floor),具体 (p=1,2) 的情况上面也有描述。

    ((-1)^p = mu (d)),这才是我们最大的发现!

    于是:

    [sum_{i=1}^n mu^2(i) = sum_{d=1}^{sqrt{n}} mu(d) lfloor frac{n}{d^2} floor ]

    感性理解完毕(估计理性理解不了这东西吧?)

    于是我们可以知道,(mu) 可以看做对整除关系的容斥。

    至此就可以用 (mathcal{O}(sqrt{n})) 的时间复杂度解决问题。

    简易的代码胜过复杂的说教。
  • 相关阅读:
    source insight快捷键及使用技巧
    HTTP 状态码
    select poll epoll三者之间的比较
    服务器程序后台化以及守护进程的编写规范
    Linux 信号表
    Linux下有线无线网络配置------命令模式
    浅谈 qmake 之 pro、pri、prf、prl文件
    Python VUE 基础知识
    VUE 实现tab切换页面效果
    爬虫框架:scrapy
  • 原文地址:https://www.cnblogs.com/bifanwen/p/15063644.html
Copyright © 2020-2023  润新知