zoukankan      html  css  js  c++  java
  • 莫比乌斯反演&杜教筛学习笔记

    莫比乌斯反演&杜教筛学习笔记

    (O(n^{frac23}))解决积性函数前缀和

    • 狄利克雷卷积

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

    (varepsilon)为狄利克雷卷积的单位元

    两个积性函数卷积后仍为积性函数

    • 例子

    [varepsilon=mu*1 ]

    [d=1*1 ]

    [sigma=d*1 ]

    [phi=mu*Id ]

    [Id=phi*1 ]

    • 莫比乌斯反演

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

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

    [d(i*j)=sum_{x|i}sum_{y|j}[gcd(x,y)=1] ]

    常用方法:

    1. 变换顺序
    2. 用T代乘积
    3. 换元
    4. 枚举约数
    5. 卷积
    6. 反演
    7. 转化思考角度
    • 反演扩展

    [f(n)=sum_{i=1}^nt(i)g(lfloorfrac n i floor) ]

    [g(n)=sum_{i=1}^nmu(i)t(i)f(lfloorfrac n i floor) ]

    • 推式子

    [S(n)=sum_{i=1}^nf(i) ]

    [构造一个h=g*f(g,h均需构造,*代表狄利克雷卷积) ]

    [sum_{i=1}^nh(i)=sum_{i=1}^nsum_{d|i}g(d)f(frac i d) ]

    [=sum_{d=1}^ng(d)sum_{i=1}^{lfloorfrac n d floor}f(i) ]

    [=sum_{d=1}^ng(d)S(lfloorfrac n d floor) ]

    [sum_{i=1}^nh(i)=g(1)S(n)+sum_{d=2}^ng(d)S(lfloorfrac nd floor) ]

    [S(n)=frac{sum_{i=1}^nh(i)-sum_{d=2}^ng(d)S(lfloorfrac nd floor)}{g(1)} ]

    要求:(h(i))前缀要好求

    一般用线性筛筛一部分,大概为(n^{frac23}),最快

    数学加油ヾ(◍°∇°◍)ノ゙

  • 相关阅读:
    线性表单链表的实现
    线性表顺序存储结构
    【C语言】产生随机数
    TCP/IP协议
    【bfs】奇怪的电梯(P1135)
    【DFS】取数游戏(P1123)
    【DFS】圣诞夜的极光(P1454)
    【贪心】骑士的工作(P2695)
    【贪心】纪念品分组(P1094)
    生活的那么一点反思
  • 原文地址:https://www.cnblogs.com/aurora2004/p/12660748.html
Copyright © 2011-2022 走看看