zoukankan      html  css  js  c++  java
  • 莫比乌斯反演-学习笔记

    记录学习莫比乌斯的过程。
    为什么lqs的T2就出莫比乌斯反演啊

    定义

    莫比乌斯函数记为(mu(d))
    1.当(d=1)时,函数值为1
    2.当(d=p_1*p_2*p_3*...*p_k) p为质数时 函数值为((-1)^k)
    这条性质的意思是 (d) 分解质因数后没有平方以上的质因子,函数值根据质因子个数决定
    3.对于其他值,(mu(d)=0)

    性质

    1. 对于正整数(n),有

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

    这是最常用且最好用的式子。
    另外,将(d)替换成(gcd(i,j)),即可得到另外一个常用式子

    [[gcd(i,j)=1]=sum_{d|gcd(i,j)}mu(d) ]

    其中([...])表示括号中条件成立为(1) 否则为 (0)

    常见技巧

    从一道例题开始。

    例1.

    [sum_{i=1}^nsum_{j=1}^m[gcd(i,j)=1] (n<m)) ]

    套路:套公式。

    [=sum_{i=1}^nsum_{j=1}^msum_{d|gcd(i,j)}mu(d) ]

    套路:枚举d 消sigma
    (d)的范围在(1-n)之间,我们枚举 (d) , 发现满足 (d) 同时是两个数字 (x,y) 的因数时会统计答案。于是得出下面这个式子

    [=sum_{d=1}^n mu(d) imes lfloor frac m d floor imes lfloor frac n d floor]

    后面一部分可以使用整数分块在根号时间内解决。

    例2

    洛谷P2557
    参考第一篇题解。设两个函数的真的难以理解。
    题目求

    [sum_{i=1}^nsum_{j=1}^m[gcd(i,j)in prime] ]

    进行一个式子的推。
    (gcd(i,j)=k)
    套路:除以k
    多枚举一个k,式子变成了这样

    [sum_{k=1}^n sum_{i=1}^{lfloor frac n k floor} sum_{j=1}^{lfloor frac m k floor} [gcd(i,j)=1] ]

    带入公式,得到:

    [sum_{k=1}^n sum_{i=1}^{lfloor frac n k floor} sum_{j=1}^{lfloor frac m k floor} sum_{d|gcd(i,j)}mu(d) ]

    使用套路枚举d,消去两个(sum)

    [sum_{d=1}^{lfloor frac n {k} floor} sum_{k=1}^n mu(d) lfloor frac n {k*d} floor imes lfloor frac m {k*d} floor ]

    推到这里已经差不多。接下来需要更多奇怪的优化。
    (T=kd) ,有下面的式子

    [sum_{d=1}^{lfloor frac n {k} floor} sum_{k=1}^n mu(d) lfloor frac n {T} floor imes lfloor frac m {T} floor ]

    枚举(T),放到前面去。

    [sum_{T=1}^{n} lfloor frac n {T} floor lfloor frac m {T} floor sum_{k|T,kin prime} mu(frac T k) ]

    很好,最后这个东西和(n,m)无关,看起来可以预处理。
    枚举质数(k,T)(k)的倍数,将(f[T])都加上(mu(frac T k))。最后进行一个前缀和操作和整数分块
    然后就很愉快的搞掉了这题。

  • 相关阅读:
    python字典及其内置函数详解
    python函数语法学习
    python切片、迭代、生成器、列表生成式等高级特性学习
    Python入门及安装
    node中的加密模块 crypto
    Nodejs+MongoDB+Bootstrap+esj搭建的个人简易博客
    JavaScript的深拷贝和浅拷贝总结
    redux 学习总结
    简述redux(1)
    通信数据转发程序:代理、网关、隧道
  • 原文地址:https://www.cnblogs.com/lzy-blog/p/15408153.html
Copyright © 2011-2022 走看看