zoukankan      html  css  js  c++  java
  • 题解 P3312 【[SDOI2014]数表】

    数表

    [ans=sum_{i=1}^{n}sum_{j=1}^{m}[ageqsum_{d|gcd(i,j)}d] imessum_{d|gcd(i,j)}d ]

    我们假设

    [G(n,m)=sum_{d|gcd(n,m)}d ]

    [n leq m ]

    [egin{aligned} G(n,m) & = sum_{d|gcd(n,m)}d \ & = sum_{d=1}^{n}d imes[d|gcd(n,m)] \ & = sum_{d=1}^nd imes[mn=leftlfloordfrac{nm}{d^2} ight floor imes d^2] end{aligned} ]

    这个思路有点难走,那我们换个思路

    [ans=(sum_{i=1}^nsum_{j=1}^msum_{d|gcd(i,j)}d)-(sum_{i=1}^nsum_{j=1}^m[a<sum_{d|gcd(i,j)}d] imessum_{d|gcd(i,j)}d) ]

    我们设前面的式子为sum(n,m),则

    [egin{aligned} sum(n,m) & =sum_{i=1}^nsum_{j=1}^msum_{d|gcd(i,j)}d \ & =sum_{d=1}^nd imes leftlfloordfrac{n}{d} ight floor imesleftlfloordfrac{m}{d} ight floor end{aligned} ]

    这个可以用数论分块

    然后我们发现其实后面的式子和上面没有用减法原理的式子一样,所以失败


    这个时候,我们发现我们最开始枚举的东西就是除数函数!

    其实我没有发现,是看题解才知道的

    所以我们可以写出sum(n,m)的另一个版本

    [egin{aligned} sum(n,m) & = sum_{i=1}^nsum_{j=1}^msigma(gcd(i,j)) \ & = sum_{t=1}^{n}sigma(t)sum_{i=1}^{leftlfloordfrac{n}{t} ight floor}sum_{j=1}^{leftlfloordfrac{m}{t} ight floor}[gcd(i,j)=1] \ & = sum_{t=1}^{n}sigma(t)sum_{i=1}^{leftlfloordfrac{n}{t} ight floor}sum_{j=1}^{leftlfloordfrac{m}{t} ight floor}sum_{d|gcd(i,j)}mu(d) \ & = sum_{t=1}^{n}sigma(t)sum_{d=1}^{leftlfloordfrac{n}{t} ight floor}mu(d)leftlfloordfrac{n}{dt} ight floorleftlfloordfrac{m}{dt} ight floor \ & =sum_{T=1}^{n}leftlfloordfrac{n}{T} ight floorleftlfloordfrac{m}{T} ight floorsum_{d|T}sigma(d)mu(frac{T}{d}) end{aligned} ]

    此时,前面的求和可以分块(O(n + m)),后面的是个积性函数,可以预处理,然后就是O(1)

    但是,不是每个东西都对答案有贡献,所以我们要排除掉没有贡献的.

    然后就需要维护答案,想到维护这个词,在看一下式子,

    [ ext{单点修改,区间查询} ]

    这不就是树状数组吗?

    我们可以维护一个树状数组来存储合法的点,然后取出进行统计就可以了

  • 相关阅读:
    ASP.NET权限管理系统(FrameWork) 1.0.4 Release
    广告统计分析系统(ADCount) 1.0.0 Beta
    Asp.Net权限管理系统 专用代码生成工具(DDBuildTools) 1.1.0
    ASP.NET权限管理系统(FrameWork) 1.0.7 Release
    remoting缓存设计总结
    关于在Page_Load定义外部变量输出
    ASP.NET权限管理系统(FrameWork) 1.0.5 Release
    DDBuildTools 1.3.0 Release发布
    ASP.NET权限管理系统(FrameWork) 1.0.6 Release
    缺席
  • 原文地址:https://www.cnblogs.com/starseven/p/13560251.html
Copyright © 2011-2022 走看看