ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

luogu P3911

2021-09-10 15:33:26  阅读:166  来源: 互联网

标签:lfloor frac luogu sum rfloor times text P3911


题目

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

给出集合 \(A\),设 \(n=\mid A\mid\),求 \(\sum_{i=1}^n\sum_{j=1}^n\text{lcm}(A_i,A_j)\)。

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

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

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

这样原式就转化为了:

\[\sum_{i=1}^n\sum_{j=1}^n\text{lcm}(i,j)\times t[i]\times t[j] \]

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

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

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

愉快的推式子时间~:

\[\large \begin{aligned} &\sum_{i=1}^n\sum_{j=1}^n\text{lcm}(i,j)\times t[i]\times t[j]\\ &\Rightarrow\sum_{i=1}^n\sum_{j=1}^n\frac{i\times j}{\text{gcd}(i,j)}\times t[i]\times t[j]\\ &\Rightarrow\sum_{d=1}^n\sum_{i=1}^n\sum_{j=1}^n\frac{i\times j}{[\text{gcd}(i, j)=d]\times d}\times t[i]\times t[j]\\ &\Rightarrow\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}\frac{i d\times jd}{[\text{gcd}(i, j)=1]\times d}\times t[id]\times t[jd]\\ &\Rightarrow\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}d\times i\times j\times[\text{gcd}(i, j)=1]\times t[id]\times t[jd]\\ &\Rightarrow\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}d\times i\times j\times\sum_{k\mid i,k\mid j}\mu(k)\times t[id]\times t[jd]\\ &\Rightarrow\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{k\mid i,k\mid j}\mu(k)\times d\times i\times j\times t[id]\times t[jd]\\ &\Rightarrow\sum_{d=1}^n\sum_{k=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{i=1}^{\lfloor\frac{n}{kd}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{kd}\rfloor}\mu(k)\times d\times ik\times jk\times t[ikd]\times t[jkd]\\ &\Rightarrow\sum_{s=1}^ns\times\sum_{k\mid s}\mu(k)\times k\ (\sum_{i=1}^{\lfloor\frac{n}{s}\rfloor}i\times t[is])^2 \end{aligned} \]

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

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

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

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

标签:lfloor,frac,luogu,sum,rfloor,times,text,P3911
来源: https://www.cnblogs.com/codingxu/p/15251468.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有