zoukankan      html  css  js  c++  java
  • [清华集训2012]模积和 题解

    [sumlimits^n_{i=1}sumlimits_{j=1}^m(n mod i) imes (m mod j) , i eq j ]

    一点点往下推。

    [sumlimits_{i=1}^nsumlimits_{j=1}^m (n mod i) imes (m mod j) - sumlimits_{i=1}^{min(n,m)} (n mod i) imes(m mod i) ]

    我们知道 (nmod i = n - i imesleftlfloorfrac{n}{i} ight floor)

    单独看前半部分可以得到

    [sumlimits_{i=1}^n (n - i imesleftlfloorfrac{n}{i} ight floor) sumlimits_{j=1}^m (m - j imesleftlfloorfrac{m}{j} ight floor) ]

    [(n^2 - sumlimits_{i=1}^n i imesleftlfloorfrac{n}{i} ight floor) imes (m^2 - sumlimits_{j=1}^m j imesleftlfloorfrac{m}{j} ight floor) ]

    我们设 (f(p,q) = sumlimits_{i=1}^q p imesleftlfloorfrac{p}{i} ight floor)

    显然上面这个东西可以数论分块搞出来。

    可以得到

    [(n^2 - f(n,n)) imes(m^2 - f(m,m)) ]

    这个显然也可以在 (O(sqrt n)) 的复杂度内求出来。

    再来看后半部分可以得到

    [sumlimits_{i=1}^{min(n,m)}(n-leftlfloorfrac{n}{i} ight floor imes i) imes (m - leftlfloorfrac{m}{i} ight floor imes i) ]

    我们记 (N = min(n,m))

    [Nnm - nsumlimits_{i=1}^N ileftlfloorfrac{m}{i} ight floor - msumlimits_{i=1}^N ileftlfloorfrac{n}{i} ight floor + sumlimits_{i=1}^N i^2 imes leftlfloorfrac{m}{i} ight floorleftlfloorfrac{n}{i} ight floor ]

    前缀平方和使用公式即可,其它用数论分块可以解决。

    最终复杂度 (O(qsqrt n))

  • 相关阅读:
    JAVA实现WEBSERVICE 上传下载
    C# 扩展方法
    C# winform窗体假死
    javascript webstorm用法
    设计模式 单例模式
    c# 浏览器区别
    C# 文件递归
    批处理
    Windows Services Windows Services的操作
    Oracle下载及安装
  • 原文地址:https://www.cnblogs.com/nao-nao/p/14794447.html
Copyright © 2011-2022 走看看