• luogu3768 简单的数学题题解


    luogu3768 简单的数学题题解

    ​ 原题地址:https://www.luogu.com.cn/problem/P3768

    ​ 题意:求

    [Sigma_{i=1}^nSigma_{j=1}^n ijgcd(i,j) ]

    ​ 这个式子看起来很基础,但是可以看到数据范围大于(1e8),求和上指标又同为(n),此题肯定有一些特殊的做法

    ​ 先按照常规的套路,设

    [d=(i,j) ]

    ​ 并将(d)直接提出来

    [Sigma_{d=1}^nd^3 Sigma_{i=1}^{n/d}Sigma_{j=1}^{n/d}ij[(i,j)=1] ]

    ​ 右边的式子用莫比乌斯函数的和式替代

    [Sigma_{d=1}^nd^3 Sigma_{i=1}^{n/d}Sigma_{j=1}^{n/d}ijSigma_{k|(i,j)}mu(k) ]

    ​ 将(k)往左边提

    [Sigma_{d=1}^nd^3 Sigma_{k=1}^{n/d}k^2mu(k)(Sigma_{i=1}^{n/kd}i)^2 ]

    ​ 设右边的和式为(c),并用(T=kd)换元

    [Sigma_{d=1}^nd^3 Sigma_{T=1}^n c(T)^2(T/d)^2mu(T/d) ]

    ​ 整理式子

    [Sigma_{T=1}^nc(T)^2T^2Sigma_{d|T}dmu(T/d) ]

    ​ 根据狄利克雷卷积的性质

    [varphi=mu*id ]

    ​ 可以将右边的式子用(varphi)代替

    [Sigma_{T=1}^n c(T)^2T^2varphi(T) ]

    ​ 观察右侧的式子,可以发现(T^2varphi(T))是一个积性函数(两个数论函数的积仍为积性函数),考虑处理这一部分,试图用杜教筛的式子向上套

    [g(1)S(n)=Sigma_{i=1}^nH_i-Sigma_{i=2}^ng(i)S(n/i) ]

    ​ 其中

    [S(n)=Sigma_{i=1}^nf(i),H=f*g,f(n)=n^2varphi(n) ]

    ​ 观察(f(n))(varphi)难以直接处理,肯定要被转化掉,那就利用狄利克雷卷积中的(id=I*varphi),设(g(n)=1)

    [H(n)=n^2Sigma_{d|n}varphi(d)=n^3 ]

    ​ 通过解递推方程可以发现,(Sigma_{i=1}^nH_i)就是原式中的(c^2),于是式子的形式就很简洁了

    [S(n)=c(n)^2-Sigma_{i=2}^ni^2S(n/i) ]

    ​ 直接代入原式求解就可以辣

    ​ 小结:此题在莫反的基础上有扩展,上指标相同看似简化条件,实际上对性能要求更高。推式子时利用了狄利克雷卷积来处理(mu),并在最后杜教筛处理前缀和时再次利用了(varphi)的性质,算是对数论函数关系的灵活拓展

  • 相关阅读:
    CentOS 7.0关闭默认防火墙启用iptables防火墙
    Linux下安装jdk1.8
    Linux下的tar压缩解压缩命令详解
    centos7上安装redis
    通过克隆虚拟机来创建多个虚拟机
    深度学习的网络资料
    在ubuntu中添加widows启动项的简单方法
    循环神经网络RNN的基本介绍
    统计学习——随机过程
    spark机制理解(一)
  • 原文地址:https://www.cnblogs.com/nebulyu/p/13500302.html
Copyright © 2020-2023  润新知