莫比乌斯函数&莫比乌斯反演

  莫比乌斯函数:http://wenku.baidu.com/view/fbec9c63ba1aa8114431d9ac.html  

  Orz  PoPoQQQ

  

  这个证明过程第三步和第四步一开始没看懂……

  第三步:观察计算左边f(k)的系数,可以看出只要d不大于n/k均可以使μ(d)成为f(k)的系数,那么f(k)的系数就是sigma[d丨(n/k)] μ(d) (方括号内为d的范围) 

  利用整除的性质,重新组合了一下这几项,相当于对一个多项式重新分组提取因式什么的……

  第四步:利用sigma μ(d)=1或0  那个性质一:当k小于n时,f(k)的系数为0;当k=n时,为1。证毕QAQ

  向JZJ大神致敬!

 

  莫比乌斯反演:

    对于一些函数f(n),如果我们很难直接求出它的值,而容易求出倍数和或约数和F(n),那么我们可以通过莫比乌斯反演来求得f(n)的值
    例:f(n)表示某一范围内(x,y)=n的数对的数量,F(n)表示某一范围内n|(x,y)的数对的数量
    那么直接求f(n)并不是很好求,而F(n)求起来相对无脑一些,我们可以通过对F(n)进行莫比乌斯反演来求得f(n)

 

    for(i=1;i<=n;i=last+1){
      last=min(n/(n/i),m/(m/i));
      ……
    }
    这种写法可以O(sqrt(n))枚举所有的n/d!这个枚举除法的取值在莫比乌斯反演中非常常用。。?

  例题:

  【BZOJ】【2301】problem b

posted @ 2015-02-06 23:26  Tunix  阅读(694)  评论(0编辑  收藏  举报