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))

  • 相关阅读:
    luogu2568GCD题解--欧拉函数
    POJ1845Sumdiv题解--约数之和
    luogu1731生日蛋糕题解--恶心剪枝
    luogu1156垃圾陷阱题解--背包DP
    CF336C-Vasily the Bear and Sequence题解--贪心
    luogu2261余数求和题解--整除分块
    UVA10140PrimeDistance题解--质数/技巧
    CSP2019 游记
    CSP-SJX2019 和积和
    NOIP2018 游记
  • 原文地址:https://www.cnblogs.com/nao-nao/p/14794447.html
Copyright © 2011-2022 走看看