Sum of LCM (lcmsum)
题目
【题目描述】
对于 $ 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)的更多相关文章
- 扩展欧几里德解的数量(51nod 1352)
题意:给出N,A,B:求A*x+ B*y = N+1 的大于0 的解的数量: 思路:先用exgcd求出大于0的初始解x,rest = N - x*A; sum = rest/LCM(A, B); ...
- ACdream 1128 Maze(费用流)
题目链接:http://acdream.info/problem?pid=1128 Problem Description wuyiqi陷入了一个迷宫中,这个迷宫是由N*M个格子组成的矩阵.每个格子上 ...
- FZU2179(数位dp)
传送门:Chriswho 题意:求区间[1,n]内能整除自己本身各位数字的数的个数. 分析:这题跟CF 55D Beautiful numbers一样的,一个数能被它的所有非零数位整除,则能被它们的最 ...
- PAT甲题题解-1088. Rational Arithmetic (20)-模拟分数计算
输入为两个分数,让你计算+,-,*,\四种结果,并且输出对应的式子,分数要按带分数的格式k a/b输出如果为负数,则带分数两边要有括号如果除数为0,则式子中的结果输出Inf模拟题最好自己动手实现,考验 ...
- HDU4135Co-prime(容斥原理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135 题目解析: 给你一个闭区间[A,B](1 <= A <= B <= 1015) ...
- 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 ...
- LOJ2565 SDOI2018 旧试题 莫比乌斯反演、三元环计数
传送门 这道题的思路似乎可以给很多同时枚举三个量的反演题目提供一个很好的启发-- 首先有结论:\(d(ijk) = \sum\limits_{x|i}\sum\limits_{y|j}\sum\lim ...
- D. Beautiful numbers
题目链接:http://codeforces.com/problemset/problem/55/D D. Beautiful numbers time limit per test 4 second ...
- B. Apple Tree 暴力 + 数学
http://codeforces.com/problemset/problem/348/B 注意到如果顶点的数值确定了,那么它分下去的个数也就确定了,那么可以暴力枚举顶点的数值. 顶点的数值是和LC ...
随机推荐
- iOS开发之---KVC全解
————————————————————————————————————————————————————————————— 一 KVC的基本概念 KVC是Key Value Coding的缩写,意思是 ...
- 第十章 Executor框架
在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源.同时,为每一个任务创建一个新线程来执行 ...
- docker 笔记(6)网络
docker network ls 默认docker安装时会创建3个网络 none网络 one 网络就是什么都没有的网络.挂在这个网络下的容器除了 lo,没有其他任何网卡.容器创建时,可以通过 - ...
- nginx 限制solr
server { listen 80; server_name bai.com www.bai.com; location /solr/ { allow 192.168.0.0/24; allow ...
- 自定义Android Studio方法注释模板
前言 你们从Eclipse转到Android Studio的时候,是不是会怀念Eclipse的方法注释模版? 敲/**加回车,模板就出来了,而Android Studio却不能自定义(或者我没有找到) ...
- Android开发 开启闪光灯 关键代码
在AndroidManifest中注册响应的权限: <uses-permission android:name="android.permission.FLASHLIGHT" ...
- 修改 linux 时区时间和 php 时区
问题:客户美国服务器时间不对第一步,先修改硬件时区. vim /etc/sysconfig/clock将 ZONE="America/New_York" 注释,加多一行 ZONE= ...
- VS2010 rdlc报表无法显示“数据源”选项
- POJ 1187 陨石的秘密 (线性DP)
题意: 公元11380年,一颗巨大的陨石坠落在南极.于是,灾难降临了,地球上出现了一系列反常的现象.当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点.经过一番侦察,科学家们发现陨石上 ...
- koa1链接mongodb
1.项目下安装mongodb和mongoose npm install mongodb --save-dev npm install mongoose --save-dev 2.router中 var ...