• 莫比乌斯反演


    复习了一下

    感觉做的题都是第二种类型的mobius反演

    1.YY的gcd

    有好几题都是这个扩展出去的

    什么区间-区间就是容斥一下

    还有不能重复的 就减去$f(b,b)/2$就可以了

    2.[SDOI2015]约数个数和

    这题用到一个比较技巧的东西,

    $f(x)$代表x的约数个数

    $f(nm)= sum_{i=1}^{n} sum_{j=1}^{m} i|n,j|m,gcd(i,j)==1$

    推式子反正网上都有。。打起来太麻烦了。。

    基本套路就是搞出gcd(i,j)==1这个单独在一起(就是不能和其他变量发生乘法除法)

    然后反演成什么n/x m/x之类的形式

    最后除法分块

    说个东西 /表示向下取整 表示正常除法 a/(b*c) (a/b)/c

    考虑怎么去证明它

    首先a/(b*c)=(a)/c a>=a/b

    所以我们要相差最多 应该要构造a=k*b*c-1

    这样第一个式子为k-1,而第二个式子((k*b*c-1)/b)/c=k-1

    命题得证

    3.洛谷P1829 [国家集训队]Crash的数字表格

     这题前面还是比较套路

    https://www.cnblogs.com/ljh2000-jump/p/6358095.html

    到最后一步需要求$sum{mu(t)*t}  t|n$ 这个可以用线性筛来求

    至于这个为什么是积性函数

    1.两个积性函数相乘还是积性函数 所以

    2.两个积性函数的卷积还是积性函数

    卷积的定义是$h(x)=f(t)*g(x/t) t|x$

    https://www.cnblogs.com/Wuweizheng/p/8640319.html 这里讲了几个经典的

    其他的比较简单

    相对比较难的是线性筛约数和

    直接复制一段过来。。

    1、对n质因数分解,n=p1^k1 * p2^k2 * p3^k3 ……

    则n的约数个数为(k1+1)*(k2+1)*(k3+1)……

    2、线性筛素数时,用i和素数pj来筛掉 i*pj,

    其中pj一定是i*pj的最小素因子

    如果i是pj的倍数,pj也是i的最小素因子

    设t[i] 表示i的约数个数,e[i] 表示i的最小素因子的个数

    A、如果i是质数,t[i]=2,e[i]=1

    B、如果i不是质数,枚举已有的质数pj i*pj的最小素因子是pj

    1、如果i是pj的倍数那么e[i]即为i中包含的pj的个数,所以i*pj中包含的pj的个数为e[i]+1

           所以e[i*pj]=e[i]+1,t[i*pj]=t[i]/(e[i]+1)*(e[i]+2)

    2、如果i不是pj的倍数,e[i*pj]=1,t[i*pj]=t[i]*t[pj](积性函数的性质)=t[i]*2(素数的约数个数=2)

    from:https://www.cnblogs.com/TheRoadToTheGold/p/8228969.html#_label1

  • 相关阅读:
    软件工程概论之web基础
    java动手动脑——异常处理
    Java动手动脑——多态和继承
    java字串
    数据结构——用栈来判断回文字符串
    java一个能记录生成多少个对象的类
    openwrt设置默认登陆密码
    在ubuntu中安装luci解决iwinfo.h No such file or directory问题
    添加mysamba
    更改默认打开wifi功能
  • 原文地址:https://www.cnblogs.com/yinwuxiao/p/9953299.html
Copyright © 2020-2023  润新知