zoukankan      html  css  js  c++  java
  • luogu P3911

    题目

    修复了一些小bug,(。・_・。)ノI’m sorry~

    给出集合 (A),设 (n=mid Amid),求 (sum_{i=1}^nsum_{j=1}^n ext{lcm}(A_i,A_j))

    摸到这道题,我们马上就可以发现 (A) 中的元素是无序的,题目中给出的式子没法化简,所以我们不得不考虑转化式子。

    数据范围 (1le A_ile5e4),这就很好办了……

    开一个桶(这里用数组 (t) 表示),(t[i]) 表示数 (i) 在集合中出现的次数。

    这样原式就转化为了:

    [sum_{i=1}^nsum_{j=1}^n ext{lcm}(i,j) imes t[i] imes t[j] ]

    注意此后 (n) 指集合 (A) 中元素的最大值。

    这样好像就可以转化 ( ext{gcd}) 求解了。

    (为了此篇题解更通俗易懂,接下来的推导会有些冗余部分,见谅~)

    愉快的推式子时间~:

    [large egin{aligned} &sum_{i=1}^nsum_{j=1}^n ext{lcm}(i,j) imes t[i] imes t[j]\ &Rightarrowsum_{i=1}^nsum_{j=1}^nfrac{i imes j}{ ext{gcd}(i,j)} imes t[i] imes t[j]\ &Rightarrowsum_{d=1}^nsum_{i=1}^nsum_{j=1}^nfrac{i imes j}{[ ext{gcd}(i, j)=d] imes d} imes t[i] imes t[j]\ &Rightarrowsum_{d=1}^nsum_{i=1}^{lfloorfrac{n}{d} floor}sum_{j=1}^{lfloorfrac{n}{d} floor}frac{i d imes jd}{[ ext{gcd}(i, j)=1] imes d} imes t[id] imes t[jd]\ &Rightarrowsum_{d=1}^nsum_{i=1}^{lfloorfrac{n}{d} floor}sum_{j=1}^{lfloorfrac{n}{d} floor}d imes i imes j imes[ ext{gcd}(i, j)=1] imes t[id] imes t[jd]\ &Rightarrowsum_{d=1}^nsum_{i=1}^{lfloorfrac{n}{d} floor}sum_{j=1}^{lfloorfrac{n}{d} floor}d imes i imes j imessum_{kmid i,kmid j}mu(k) imes t[id] imes t[jd]\ &Rightarrowsum_{d=1}^nsum_{i=1}^{lfloorfrac{n}{d} floor}sum_{j=1}^{lfloorfrac{n}{d} floor}sum_{kmid i,kmid j}mu(k) imes d imes i imes j imes t[id] imes t[jd]\ &Rightarrowsum_{d=1}^nsum_{k=1}^{lfloorfrac{n}{d} floor}sum_{i=1}^{lfloorfrac{n}{kd} floor}sum_{j=1}^{lfloorfrac{n}{kd} floor}mu(k) imes d imes ik imes jk imes t[ikd] imes t[jkd]\ &Rightarrowsum_{s=1}^ns imessum_{kmid s}mu(k) imes k (sum_{i=1}^{lfloorfrac{n}{s} floor}i imes t[is])^2 end{aligned} ]

    一些解释(大佬可直接跳过):

    1. (s=kd)
    2. 结果中的平方为上面的式子中的 (i)(j),他俩其实是一样的。

    最后,我们使用线性筛预处理 (sum_{kmid s}mu(k) imes k),输入时直接处理 (t),然后暴力就完了。

    代码按照上面的暴力即可,就不给了 QVQ。

  • 相关阅读:
    __doPostBack的使用
    【转】function,new,constructor and prototye
    谈谈一些网页游戏失败的原因到底有哪些?(转)
    全面剖析页游巨头发家史(转)
    2013.02.20开通博客
    老子喜欢的女人
    如何成为强大的程序员?(转)
    注重健康
    学习方法总结
    数据库知识点滴积累
  • 原文地址:https://www.cnblogs.com/codingxu/p/15251468.html
Copyright © 2011-2022 走看看