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 ...
随机推荐
- java代码equals方法
package com.bc; public class Test_6 { // 我们知道java中的每个类都继承自Object类,equals是Object方法之一 String name; int ...
- AngularJS:HTML DOM
ylbtech-AngularJS:HTML DOM 1.返回顶部 1. AngularJS HTML DOM AngularJS 为 HTML DOM 元素的属性提供了绑定应用数据的指令. ng-d ...
- CreateWaitableTimer和SetWaitableTimer
负值表示相对时间,正值表示绝对时间,定时器精度为100ns (1ns=1/10亿 s),所以 -50000000 代表5秒,详见MSDN. 程序一为自动重置(先等待5秒,然后每1秒输出一次): #in ...
- 基于ActiveMQ的Topic的数据同步——消费者持久化
前面一章中介绍了activemq的初步实现:基于ActiveMQ的Topic的数据同步——初步实现 下面来解决持久化订阅的问题: (1)使用queue,即队列时,每个消息只有一个消费者,所以,持久化很 ...
- hibernate学习笔记(1)基础配置与jar包
下载hibernate基础jar包,并解压hibernate-core-4.2.4.final 在myeclipse中添加hibernate的dtd支持: location为D:\学习\imooc-h ...
- 新创建的maven项目,显示的jdk版本与使用的不一致
解决:是在安装的maven中的setting.xml配置文件中添加 在setting.xml配置文件中的<profiles></profiles>这个元素中加以下代码 如果加上 ...
- Generalized Low Rank Approximation of Matrices
Generalized Low Rank Approximations of Matrices JIEPING YE*jieping@cs.umn.edu Department of Computer ...
- js中的操作符
写在前面 js语法 DOM对象(把body,div,p等节点树看成一个对象) BOM对象(把浏览器的地址栏历史记录DOM等装在一个对象) 浏览器是宿主,但js的宿主不限于浏览器,也可以是服务器,如no ...
- MVC分层思想、SSM编程架构
1 MVC 和 SSM
- css 层叠式样式表(2)
一,样式表分类 (1)内联样式. --优先级最高,代码重复使用最差. (当特殊的样式需要应用到单独某个元素时,可以使用. 直接在相关的标签中使用样式属性.样式属性可以包含任何 CSS 属性.) (2) ...