最小公倍数之和

题目描述:

对于A1,A2…AN,求
∑i=1N∑i=1Nlcm(Ai,Aj)\sum_{i=1}^{N}\sum_{i=1}^{N} lcm(Ai,Aj)∑i=1N​∑i=1N​lcm(Ai,Aj)

题解:

莫比乌斯反演,直接强推一波

推导过程我也是一知半解,大体如图
然后预处理f(T)即可


2021/8/21时隔一年再更

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn 50005
#define rgt registerint N, M, cnt[maxn], mu[maxn], p[maxn], tot, v[maxn];
ll s[maxn];
ll ans=0;int main(){scanf( "%d", &N ); for ( rgt int i = 1, x; i <= N; ++i ) scanf( "%d", &x ), ++cnt[x], M = max( M, x );N = M, mu[1] = 1;for ( rgt int i = 2; i <= N; ++i ){//线性筛出muif ( !v[i] ) p[++tot] = i, mu[i] = -1;for ( rgt int j = 1; j <= tot && i * p[j] <= N; ++j ){v[i * p[j]] = 1;if ( i % p[j] == 0 ){ mu[i * p[j]] = 0; break; }else mu[i * p[j]] = -mu[i];}}for ( rgt int i = 1; i <= N; ++i )for ( rgt int j = i; j <= N; j += i )s[j] += 1ll * mu[i] * i;//预处理提到过的那玩意for ( rgt int T = 1; T <= N; ++T ){rgt ll cur(0);for ( rgt int i = 1, I = N / T; i <= I; ++i ) cur += 1ll * cnt[i * T] * i;//暴力求解ans += T * cur * cur * s[T];} printf( "%lld\n", ans );return 0;
}

P3911 最小公倍数之和相关推荐

  1. P3911 最小公倍数之和 (atcoder C - LCMs)(反演)

    P3911 最小公倍数之和 推式子 ∑i=1n∑j=1nlcm(ai,aj)下面的n=max(ai),ci为i在原数组中出现的次数∑i=1n∑j=1nijgcd(ij)cicj=∑d=1n1d∑i=1 ...

  2. C语言易错题--求最大公约数与最小公倍数之和(辗转相除法)

    题目来源:牛客网编程入门训练--BC115  小乐乐与欧几里得 输入描述: 每组输入包含两个正整数n和m.(1 ≤ n ≤ 109,1 ≤ m ≤ 109) 输出描述: 对于每组输入,输出一个正整数, ...

  3. 1190 最小公倍数之和 V2

    1190 最小公倍数之和 V2 ∑i=ablcm(i,b)∑i=abi×bgcd⁡(i,b)b∑d∣b∑i=⌈ad⌉bdi[gcd(i,bd)=1]b∑d∣b∑k∣bdμ(k)k∑i=⌈⌈ad⌉k⌉a ...

  4. 51 NOD 1363 最小公倍数之和 (欧拉函数思维应用)

    1363 最小公倍数之和 推式子 ∑i=1nlcm(i,n)=n∑i=1nigcd(i,n)=n∑d∣n∑i=1nid(gcd(i,n)==d)=n∑d∣n∑i=1ndi(gcd(i,nd)==1)= ...

  5. [51 nod 1238] 最小公倍数之和 V3(杜教筛)

    1238 最小公倍数之和 V3 推式子 ∑i=1n∑j=1nlcm(i,j)=∑i=1n∑j=1nijgcd(i,j)=∑d=1n∑i=1n∑j=1nijd(gcd(i,j)==d)=∑d=1nd∑i ...

  6. 51nod1363 最小公倍数之和

    题目描述 给出一个n,求1-n这n个数,同n的最小公倍数的和. 例如:n = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66. 由于结果很大,输出Mo ...

  7. 51 NOD 1238 最小公倍数之和 V3

    原题链接 最近被51NOD的数论题各种刷--(NOI快到了我在干什么啊! 然后发现这题在网上找不到题解--那么既然A了就来骗一波访问量吧-- (然而并不怎么会用什么公式编辑器,写得丑也凑合着看吧-- ...

  8. [51nod1238] 最小公倍数之和 V3(杜教筛)

    题面 传送门 题解 懒了--这里写得挺好的-- //minamoto #include<bits/stdc++.h> #define R register #define ll long ...

  9. 51nod1238 最小公倍数之和 V3

    又被这神仙题给坑爆了. 神仙题解. 一开始我把lcm变成ij/gcd然后按照常规套路去推,推到最后发现不是miu * Id而是miu · Id......这还搞鬼啊. 正解居然跟这个差不多,先转成求其 ...

最新文章

  1. 执行超时已过期。完成操作之前已超时或服务器未响应。_OMG! 云服务器 CPU 100%了!肿么办?...
  2. nacos 配置_SpringCloud Alibaba之Nacos配置中心
  3. c语言任意位数逆序数,C语言求助!一个三位数的逆序数,总是编不对
  4. 软件质量保证与测试(什么是图灵测试)
  5. repo init 是啥意思
  6. useragent大全
  7. Qt多语言开发--Qt语言专家
  8. OpenVSwitch的端口Port学习使用
  9. 使用Python程序读取fasta文件reads
  10. 音频文件按照正常语句,断句拆分的处理方法
  11. Python生成中文词云图(二):不可指定词云特定的形状和颜色。
  12. gitlab代码管理
  13. NXP SJA1124 spi转lin芯片驱动
  14. 平安金融云为互联网金融行业注入发展新动能
  15. 从事数字化转型的你,搞清楚这些数据类基础理念了吗?数据仓库、数据集市、数据湖、数据中台
  16. 【全源码及文档】基于JSP实现的影视创作论坛系统
  17. 《用于水稻病害检测的机器视觉系统:综述》论文笔记
  18. UE4官方文档_Light Propagation Volumes_LPV方案
  19. 猪队友!猪队友!!猪队友!!!
  20. 北京地铁五号线全攻略 23座车站乘坐细节大起底

热门文章

  1. 一顿家庭火锅让本不富裕的家庭雪上加霜......
  2. java解析json_JAVA解析JSON数据
  3. linux下安装服务,linux下的软件服务安装管理
  4. linux mysql安装教程 方大帝_discuz论坛出现Can not connect to MySQL server错误的解决方法...
  5. python字符串设置字体_python怎么更改字符串后几位
  6. c语言 extern_Visual C++ 6.0环境中C语言extern 变量使用过程报错
  7. 橡皮擦_日本推出改邪归正橡皮擦,看得我头顶一凉
  8. 机器学习之数据集划分——训练集测试集划分,划分函数,估计器的使用
  9. [JavaWeb-XML]XML_快捷查询方式(selector选择器,XPath)
  10. [Java基础]Lambda表达式和匿名内部类的区别