SRM 613 div1 500pt

来源:互联网 发布:java业务逻辑层设计 编辑:程序博客网 时间:2024/05/01 20:22

                 Mobius 函数除草。。。

               

        (1)F(n) = sigma (G(d))   d | n

                 G(n) = sigma (F(d) * miu (n / d))  d | n

          还有另外一个表达形式 

        (2)F(n) = sigma (G(d))  n | d

                 G(n) = sigma (F(d) * miu (d / n))  n | d

          形式(1)的证明利用了逆元的思想,

          形式(2)本质上等价于容斥定理(自己想想容斥定理的原理就知道了)

          令满足1 <= a <= N, 1 <= b <= N, gcd(a, b) = k的个数为G(k), gcd(a,b)

          为k的倍数的个数为F(k)

          则有F(n) = sigma(G(d)) n|d

          所以有G(n)  = sigma(F(d)*miu(d/n)) n| d

          到这里本题基本上就解决了,至于Mobius函数的求法可以参见JZB的线性筛。。。

  


0 0
原创粉丝点击