题目

【题目描述】

对于 $ A_1, A_2, \ldots, A_N $ ,求$\sum_{i = 1}^N \sum_{j = 1}^N \mathrm{lcm}(A_i, A_j)$ 的值。

$ \mathrm{lcm}(a, b) $ 表示 $ a $ 和 $ b $ 的最小公倍数

【输入格式】

第 $ 1 $ 行, $ 1 $ 个整数 $ N $ 。

第 $ 2 $ 行, $ N $ 个整数 $ A_1, A_2, \ldots, A_N $ 。

【输出格式】

$ 1 $ 个整数,表示所求的值。

【样例输入】

2

2 3

【样例输出】

17

【数据范围与提示】

对于 $ 30\% $ 的数据, $ 1 \leq N \leq 1000, 1 \leq A_i \leq 50000 $ ;

对于另外 $ 30\% $ 的数据, $ 1 \leq N \leq 50000, 1 \leq A_i \leq 1000 $ ;

对于 $ 100\% $ 的数据, $ 1 \leq N \leq 50000, 1 \leq A_i \leq 50000 $ 。

题解

期中考考得什么都不会了

记 $ f_i $ 表示被 $ i $ 整除的 $ a_j $ 除 $ i $ 的和

$ f_i =  \sum_{i|a_j} a_j $

$ g_i $ 表示 $ \sum_{j=1}^{n} \sum_{k=1}^{n} lcm(a_j,a_k)[i|gcd(a_j,a_k)] $

$ g_i=f_i^2*i $

但是 $ i $ 不一定为 $ gcd(a_j,a_k) $,那么考虑容斥掉 $ gcd(a_j,a_k) $ 为 $ i $ 的倍数的值

$ h_i=g_i-\sum_{j=2}^{i*j\leq max}h_{i*j}*j $

则 $ ans=\sum_{i=1}^{max}h_i $

代码

 #include<bits/stdc++.h>
#define LL long long
#define _(d) while(d(isdigit(ch=getchar())))
using namespace std;
int R(){
int x;bool f=;char ch;_(!)if(ch=='-')f=;x=ch^;
_()x=(x<<)+(x<<)+(ch^);return f?x:-x;}
const int N=1e5+;
int n,a[N],mx;
LL ans,f[N],g[N];
int main(){
n=R();
for(int i=;i<=n;i++){
mx=max(a[i]=R(),mx);
for(int j=;j*j<=a[i];j++)
if(a[i]%j==){
g[j]+=a[i]/j;
if(j*j!=a[i])g[a[i]/j]+=j;
}
}
for(int i=;i<=mx;i++)f[i]=g[i]*g[i]*i;
for(int i=mx;i;i--){
for(int j=;i*j<=mx;j++)
f[i]=f[i]-f[i*j]*j;
ans+=f[i];
}
cout<<ans<<endl;
return ;
}

Sum of LCM (lcmsum)的更多相关文章

  1. 扩展欧几里德解的数量(51nod 1352)

    题意:给出N,A,B:求A*x+ B*y = N+1   的大于0 的解的数量: 思路:先用exgcd求出大于0的初始解x,rest = N - x*A; sum = rest/LCM(A, B); ...

  2. ACdream 1128 Maze(费用流)

    题目链接:http://acdream.info/problem?pid=1128 Problem Description wuyiqi陷入了一个迷宫中,这个迷宫是由N*M个格子组成的矩阵.每个格子上 ...

  3. FZU2179(数位dp)

    传送门:Chriswho 题意:求区间[1,n]内能整除自己本身各位数字的数的个数. 分析:这题跟CF 55D Beautiful numbers一样的,一个数能被它的所有非零数位整除,则能被它们的最 ...

  4. PAT甲题题解-1088. Rational Arithmetic (20)-模拟分数计算

    输入为两个分数,让你计算+,-,*,\四种结果,并且输出对应的式子,分数要按带分数的格式k a/b输出如果为负数,则带分数两边要有括号如果除数为0,则式子中的结果输出Inf模拟题最好自己动手实现,考验 ...

  5. HDU4135Co-prime(容斥原理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135 题目解析: 给你一个闭区间[A,B](1 <= A <= B <= 1015) ...

  6. Codeforces Round #202 (Div. 2) B,C,D,E

    贪心 B. Color the Fence time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  7. LOJ2565 SDOI2018 旧试题 莫比乌斯反演、三元环计数

    传送门 这道题的思路似乎可以给很多同时枚举三个量的反演题目提供一个很好的启发-- 首先有结论:\(d(ijk) = \sum\limits_{x|i}\sum\limits_{y|j}\sum\lim ...

  8. D. Beautiful numbers

    题目链接:http://codeforces.com/problemset/problem/55/D D. Beautiful numbers time limit per test 4 second ...

  9. B. Apple Tree 暴力 + 数学

    http://codeforces.com/problemset/problem/348/B 注意到如果顶点的数值确定了,那么它分下去的个数也就确定了,那么可以暴力枚举顶点的数值. 顶点的数值是和LC ...

随机推荐

  1. SQLite连接C#笔记

    不得不吐槽,实在是太坑了.以下几点一定要注意: 要下载两个东西,都要上官网.一个是SQLite for Windows,一个是System.Data.SQLite. 下载下来的DLL里面有个test, ...

  2. QQ控件时光轴特效总结

    1.插入HTML数据 插入html代码,一般的做法是通过document.getElementById("").innerHTML来实现. 然而在该控件中,它通过JS replac ...

  3. Mongodb 分片与副本集

    测试搭建192.168.3.110mongos 30000,30001,30002config 40000,40001,40002shard1 50001,50002,50003shard2 5000 ...

  4. 【转】Jquery修改image的src属性,图片不加载问题

    1.当点击某一按钮的时候,把图片域中的图片改变一下    <img id="randimg" src="/servlet/CreateValidateNum&quo ...

  5. SpringMVC---依赖注入与面向切面

    1.依赖注入与面向切面 1.1.出现背景 ——如何简化java开发? 其中很重要的一点是“组件化”. ——如何更好的“组件化”? 松耦合,以及尽可能的让组件专注于本身. ——Spring框架的目的也只 ...

  6. scrapy-redis源码抛析

    #scrapy-redis--->queue.py-->class FifoQueue 队列 LifoQueue(lastinfirstout栈) #self.server父类Base中链 ...

  7. 10-14C#基础--语句(switch....case和for...循环)

    10-14C#基础--语句(2) 一.课前作业:“跟电脑猜拳” 二.switch(定义的变量,参数值)......case.... 注:switch...case大多用于值类型的判断,这里不同于if表 ...

  8. docker 笔记(3)第一个dockerfile

    #vim Dockerfile FROM ubuntu RUN apt-get update && apt-get install -y vim #docker build -t ub ...

  9. 部署和调优 2.8 mysql主从配置-2

    配置主从准备工作 在主上创建一个测试的数据库 首先登录主的mysql,或者用绝对路径 /usr/local/mysql/bin/mysql mysql > create database db1 ...

  10. MVC5网站部署到IIS7

    server 2008R2+IIS7.5下配置不会出现什么问题,这里记录下在server2008+IIS7下的配置 参考了一下:http://www.cnblogs.com/fcu3dx/p/3773 ...