题意

求 \(\sum_{i=1}^nlcm(i,n)\) 。

传送

Luogu

SPOJ

分析

原式可以化为

\[\sum_{i=1}^n\frac{i*n}{gcd(i,n)}\]

由于 \(gcd(i,n)=gcd(n-i,n)\) ,可将原式变形为

\[\frac{1}{2}(\sum_{i=1}^{n-1}\frac{i*n}{gcd(i,n)}+\sum_{i=n-1}^{1}\frac{i*n}{gcd(i,n)})+n\]

两边的 \(sum\) 对应相等,于是有

\[\frac{1}{2}\sum_{i=1}^{n-1}\frac{n^2}{gcd(i,n)}+n\]

将 \(gcd(i,n)\) 相等的放在一起统计,枚举 \(gcd(i,n)==d\) ,则 \(gcd(\frac{i}{d},\frac{n}{d})==1\) ,故 \(gcd(i,n)==d\) 的数量为 \(\varphi(\frac{n}{d})\) 。

\[\frac{1}{2}\sum_{d|n}\frac{\varphi(\frac{n}{d})*n^2}{d}+n\]

转换枚举顺序,令 \(d'=\frac{n}{d}\) ,上式化为

\[\frac{n}{2}\sum_{d'|n}\varphi(d')*d'+n\]

设 \(g(n)=\sum_{d|n}\varphi(d)*d\) ,已知 \(g(n)\) 为积性函数,则可以预处理出答案,直接输出即可。

代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 1000000
#define il inline
#define re register
#define tie0 cin.tie(0),cout.tie(0)
#define fastio ios::sync_with_stdio(false)
#define File(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout)
using namespace std;
typedef long long ll;template <typename T> inline void read(T &x) {T f = 1; x = 0; char c;for (c = getchar(); !isdigit(c); c = getchar()) if (c == '-') f = -1;for ( ; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);x *= f;
}int n;
ll ans[N+5];
int phi[N+5], prime[N+5];
bool vis[N+5];void get_phi() {int cnt = 0;phi[1] = 1;for (int i = 2; i <= N; ++i) {if (!vis[i]) prime[++cnt] = i, phi[i] = i - 1;for (int j = 1; j <= cnt && i * prime[j] <= N; ++j) {vis[i*prime[j]] = 1;if (i % prime[j] == 0) {phi[i*prime[j]] = phi[i] * prime[j];break;}phi[i*prime[j]] = phi[i] * (prime[j] - 1);}}
}void pre() {for (int i = 1; i <= N; ++i)for (int j = 1; j * i <= N; ++j)ans[i*j] += 1ll * j * phi[j] / 2;for (int i = 1; i <= N; ++i) ans[i] = 1ll * ans[i] * i + i;
}int main() {get_phi();pre();int t;read(t);while (t--) {read(n);printf("%lld\n", ans[n]);}return 0;
}

转载于:https://www.cnblogs.com/hlw1/p/11562195.html

SP5971 LCMSUM相关推荐

  1. SP5971 LCMSUM - LCM Sum

    SP5971 LCMSUM - LCM Sum 思路 ∑i=1nlcm(i,n)\sum_{i = 1}^{n}lcm(i, n)i=1∑n​lcm(i,n) =>∑i=1ningcd(i,n) ...

  2. SP5971 LCMSUM - LCM Sum(莫比乌斯反演 ,推柿子,经典)

    整理的算法模板合集: ACM模板 题目传动门 #include <iostream> #include <cstdio> #include <algorithm> ...

  3. 解题报告(十五)莫比乌斯反演与积性函数(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 好久没写反演了,写些水题慢慢捡起来 目录 A. (BZOJ 2440: 中山市选2011 )完全平方数 ...

  4. [数论系列一]C Looooops,跳跳棋,The Luckiest number,CF906D Power Tower,Minimal Power of Prime,仪仗队,LCMSUM

    文章目录 C Looooops description solution code 跳跳棋 description solution code The Luckiest number descript ...

  5. bzoj2226-[Spoj5971]LCMSum【欧拉函数,GCD】

    正题 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2226 https://www.luogu.org/problem/SP5971 ...

  6. BZOJ 2226 [Spoj 5971] LCMSum 最大公约数之和 | 数论

    BZOJ 2226 [Spoj 5971] LCMSum 这道题和上一道题十分类似. \[\begin{align*} \sum_{i = 1}^{n}\operatorname{LCM}(i, n) ...

  7. 【bzoj2226】[Spoj 5971] LCMSum 欧拉函数

    题目描述 Given n, calculate the sum LCM(1,n) + LCM(2,n) + .. + LCM(n,n), where LCM(i,n) denotes the Leas ...

  8. 【SPOJ5971】LCMSUM

    [问题描述] 求sigma(lcm(i,n)),1 <= i <= n. [分析] 跟求sigma(gcd(i,n)) 有点像(POJ2480 Longge's problem),都是枚举 ...

  9. SPOJ LCMSUM - LCM Sum

    题意是求: $\sum_{i = 1}^{n}lcm(i, n)$ $= \sum_{i = 1}^{n}\frac{ni}{gcd(i, n)}$ $= n\sum_{i = 1}^{n}\frac ...

最新文章

  1. VS2008 各种杂七杂八技巧
  2. 如何获取Node.js目录中存在的所有文件的名称列表?
  3. 【Java】判断字符串是否含字母
  4. jQuery之选项卡的实现
  5. POJ3041Asteroids(二分图最少顶点覆盖)
  6. AngularJS 快速编程入门
  7. Jacoco的原理(各个覆盖率的解释)
  8. 【洛谷 1879】玉米田
  9. Oracle 数据泵使用——导入、导出
  10. java apache commons_使用java apache commons下载文件?
  11. 【英文学术论文写作 | 笔记】第一讲 学术研究与英文学术论文写作概述
  12. ElasticSearch配置集群
  13. CET-6--2018.6--2
  14. ECCV 2020 图像增强论文汇总
  15. 复旦大学教授张军平:极端情况下,人工智能的尽头就是人工
  16. android tv 菜单键,Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
  17. frl啥意思_轻钢笔记《FRL60/60/60是什么意思?》
  18. 6-16 猫和老鼠有多重分数 30
  19. 几款优秀的国内wordpress主题和其作者网站推荐
  20. linux编译ntohl加什么库,c – Linux:ntohl无法正常工作

热门文章

  1. dbeaver数据库工具
  2. 机器翻译评测——BLEU算法详解 (新增 在线计算BLEU分值)评估
  3. 分类问题-样本权重(sample_weight)和类别权重(class_weight)
  4. Python怎么利用多核cpu
  5. windows下多版本python安装与pip安装和pip使用 吐血总结
  6. Python zip() 函数
  7. redis 双写一致性
  8. 特征提取,转换和选择
  9. 自动调试用于移动GPU的卷积网络
  10. 无监督域对抗算法:ICCV2019论文解析