zoukankan      html  css  js  c++  java
  • 【笔记】莫比乌斯反演

    过了这么久,今天来重温一下这个知识点 。

    前置芝士

    容斥函数((mu)):正版

    积性函数((phi)):经常用到

    正题

    三个等式

    [mu * I = epsilon ]

    [phi * I = id ]

    [mu * id = phi ]

    其中 (I(n) = 1)(id(n) = n)(epsilon(n) = left{ egin{array}{**lr**} 1, ~~n = 1 \ 0, ~~n ot= 1 end{array} ight.)

    [epsilon(n) = sum_{d mid n}mu(d) * I(frac{n}{d}) = sum_{d mid n}mu(d) ]

    [id(n) = sum_{d mid n}phi(d) * I(frac{n}{d}) = sum_{d mid n}phi(d) = n ]

    [phi(n) = sum_{d mid n}mu(d) * id(frac{n}{d}) ]

    满足交换律,结合律,分配率 。

    经典问题

    问题 1

    给定 (N)(M),求

    [sum^{N}_{i = 1} sum^{M}_{j = 1} ext{gcd}(i, ~j) ]

    解法(推式子)

    [sum^{N}_{i = 1} sum^{M}_{j = 1} ext{gcd}(i, ~j) ]

    1. 变形

    [sum^{N}_{i = 1} sum^{M}_{j = 1} id[ ext{gcd}(i, ~j)] ]

    1. 增加枚举变量

    [sum^{N}_{i = 1} sum^{M}_{j = 1} sum_{d mid ext{gcd}(i, ~j)} phi(d) ]

    1. 交换枚举顺序

    [sum^{ ext{min}(N, ~M)}_{d = 1} sum^{lfloor frac{N}{d} floor}_{i = 1} sum^{lfloor frac{M}{d} floor}_{j = 1} phi(d) ]

    • (d)(i, ~j)( ext{gcd}) 的因子,因此 (d) 也是 (i, ~j) 的因子,(i, ~j)(d) 的倍数 。因为 ( ext{gcd}(i, ~j)) 的最大值为 ( ext{min}(i, ~j)),所以 (d) 的最大值为 ( ext{min}(i, ~j))

    • (d) 提前后,(i, ~j) 的枚举意义不再是枚举数字的值,而是枚举 (d) 出现的次数,即原数字 (i, ~j)(d) 的倍数的次数,因此 (N, ~M)(d) 并向下取整 。

    1. 删除无用变量

    [sum^{ ext{min}(N, ~M)}_{d = 1} lfloor frac{N}{d} floor lfloor frac{M}{d} floor phi(d) ]

    接下来用筛法求 (phi) 就好了 。

    问题 2

    给定 (N)(M)(K),求

    [sum^{N}_{i = 1} sum^{M}_{j = 1} ext{gcd}(i, ~j) = K ]

    解法

    [sum^{N}_{i = 1} sum^{M}_{j = 1} ext{gcd}(i, ~j) = K ]

    先变形

    [sum^{frac{N}{K}}_{i = 1} sum^{frac{M}{K}}_{j = 1} ext{gcd}(i, ~j) = 1 ]

    众所周知,两个数同时除去它们的 ( ext{gcd}) 后,剩下的两个数互质,因此令 (N, ~M)(K),求 (i, ~j) 的互质对数 。

    接下来再变形

    [sum^{frac{N}{K}}_{i = 1} sum^{frac{M}{K}}_{j = 1} epsilon[ ext{gcd}(i, ~j)] ]

    剩下的步骤就与上一个问题步骤一样了 。

    最后

    莫反的题都比较板,就是有点费脑子与头发,不过这问题不大,可以自己到洛谷找题,反正裸题重题一大堆,都是经验哦

    祝您 RP++,AK NOI!!

  • 相关阅读:
    Using F2 to Rename Open Files
    Java 浅析 Thread.join()
    JDK 8
    Automata
    The Hungarian Abhorrence Principle
    Spring 与 MyBatis 的整合
    JDK 8
    面向对象设计原则汇总
    Java Error : type parameters of <T>T cannot be determined during Maven Install
    【源码拾遗】从vue-router看前端路由的两种实现
  • 原文地址:https://www.cnblogs.com/EiffelA-blog/p/15086076.html
Copyright © 2011-2022 走看看