zoukankan      html  css  js  c++  java
  • 最大公约数之和

    本文主要讲一下最大公约数的和的推导过程(因为其太过经典,其实是博主老忘)。

    原式:

    \[\sum_{i = 1}^n\sum_{j = 1}^n\gcd(i, j) \]

    莫比乌斯反演经典入门题。

    话不多说,进入正文。

    \[\begin{aligned} & \sum\limits_{i = 1}^n\sum\limits_{j = 1}^ngcd(i, j) \\ =& \sum\limits_{k = 1}^nk\sum\limits_{i = 1}^n\sum\limits_{j = 1}^n[gcd(i, j) = k] \\ =& \sum\limits_{k = 1}^nk\sum\limits_{i = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\sum\limits_{j = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}[gcd(i, j) = 1] \\ =& \sum\limits_{k = 1}^nk\sum\limits_{i = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\sum\limits_{j = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\epsilon(gcd(i, j)) \end{aligned} \]

    根据 \(\epsilon = \mu * I\),即 \(\epsilon(n) = \sum\limits_{d | n}\mu(d)\),得:

    \[\sum\limits_{k = 1}^nk\sum\limits_{i = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\sum\limits_{j = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\sum\limits_{d | (i, j)}\mu(d) \]

    我们先考虑这样一个式子如何化简:

    \[\sum\limits_{i = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\sum\limits_{d | i}\mu(d) \]

    把枚举 \(i\) 改成枚举 \(d\)\(\left\lfloor\dfrac{n}{k}\right\rfloor\) 以内是 \(d\) 的倍数的数有 \(\left\lfloor\dfrac{n}{dk}\right\rfloor\) 个,得:

    \[\sum\limits_{d = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\left\lfloor\dfrac{n}{dk}\right\rfloor\mu(d) \]

    我们先枚举 \(d\),并把这个式子代入到刚才我们化简得那个式子中去:

    \[\begin{aligned} & \sum\limits_{k = 1}^nk\sum\limits_{i = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\sum\limits_{j = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\sum\limits_{d | (i, j)}\mu(d) \\ =& \sum\limits_{k = 1}^nk\sum\limits_{d = 1}^{ \left\lfloor\frac{n}{k}\right\rfloor}\left\lfloor\dfrac{n}{dk}\right\rfloor^2\mu(d) \end{aligned} \]

    再令 \(T = dk\),并枚举 \(T\) (其实下面的式子和上面的式子里 \(d\)\(k\) 反过来了,不过我懒得改了 QwQ):

    \[\sum_{T = 1}^n\sum_{d \mid T}d\mu(\frac Td)\lfloor\frac nT\rfloor^2 \]

    至此,就已经是一般形式了,这个可以用整除分块快速求解。

    但是,这道题还没有完,还可以进一步转化。

    我们知道 \(\varphi = \mu * id\),正好式子里存在!所以:

    \[\sum_{T = 1}^n\varphi(T)\lfloor\frac nT\rfloor^2 \]

    现在,这道题才算是真正结束了(感觉一下子式子里啥都没了 QwQ)

    \[\_EOF\_ \]

  • 相关阅读:
    金额数字每隔3位用逗号区分
    tomcat结合shiro无文件webshell的技术研究以及检测方法
    python使用p12个人证书发送S/MIME加密,签名邮件
    CVE-2020-9484 tomcat session反序列化漏洞分析与复现
    Apache CommonCollection Gadget几种特殊的玩法
    weblogic t3协议回显穿透nat思路
    weblogic T3/iiop 回显分析
    ysoserial gadget之DNSURL gadget分析及实战利用
    CVE-2020-2555 weblogic 反序列化gadget 复现
    通达OA最新RCE漏洞分析
  • 原文地址:https://www.cnblogs.com/xixike/p/15713088.html
Copyright © 2011-2022 走看看