Time:2016.06.18
Author:xiaoyimi
转载注明出处谢谢


传送门
思路:
一开始的我只能推出一个O(n√⋅n√=n)O(\sqrt n·\sqrt n=n)的式子(两次分块),但是O(Tn)O(Tn)的复杂度对于这道题并不科学……
后来发现求n以内与n互质的数的和可以O(1)求o_O
神奇的反演……
∑ni=1lcm(i,n)\sum^n_{i=1}lcm(i,n)
=∑ni=1nigcd(i,n)=\sum^n_{i=1}\frac{ni}{gcd(i,n)}
=∑ni=1∑nd=1ni[gcd(i,n)=d]d=\sum^n_{i=1}\sum^n_{d=1}\frac{ni[gcd(i,n)=d]}d
=∑ni=1∑nd=1[d|i][d|n]ni[gcd(id,nd)=1]d=\sum^n_{i=1}\sum^n_{d=1}[d|i][d|n]\frac{ni[gcd(\frac id,\frac nd)=1]}d
=∑nd=1∑ndi=1[d|n][gcd(i,nd)=1]i⋅n=\sum^n_{d=1}\sum^\frac nd_{i=1}[d|n][gcd(i,\frac nd)=1]i·n
=∑nd=1[d|n]n⋅f(nd)=\sum^n_{d=1}[d|n]n·f(\frac nd)
其中f(n)f(n)
=∑ni=1[gcd(i,n)=1]i=\sum^n_{i=1}[gcd(i,n)=1]i
=∑ni=1i∑nd=1[d|i][d|n]μ(d)=\sum^n_{i=1}i\sum^n_{d=1}[d|i][d|n]μ(d)
=∑nd=1[d|n]μ(d)⋅d∑ndi=1i=\sum^n_{d=1}[d|n]μ(d)·d\sum^\frac nd_{i=1}i
=∑nd=1[d|n]μ(d)⋅d⋅(nd+1)⋅nd/2=\sum^n_{d=1}[d|n]μ(d)·d·(\frac nd+1)·\frac nd/2
=∑nd=1[d|n]μ(d)⋅n⋅(nd+1)/2=\sum^n_{d=1}[d|n]μ(d)·n·(\frac nd+1)/2
通过φ=μ×id,e=μ×1φ=μ×id,e=μ×1
=n2(φ(n)+e(n))=\frac n2(φ(n)+e(n))
代码:

#include<cstdio>
#include<iostream>
#define M 1000004
#define LL long long
using namespace std;
int n,T;
int prime[M>>2],phi[M];
bool vis[M];
LL ans;
int in()
{int t=0;char ch=getchar();while (ch>'9'||ch<'0') ch=getchar();while (ch>='0'&&ch<='9') t=(t<<3)+(t<<1)+ch-48,ch=getchar();return t;
}
LL cal(int n){return (LL)n*(phi[n]+(n==1))/2;}
main()
{for (int i=2;i<=M-4;i++){if (!vis[i])prime[++prime[0]]=i,phi[i]=i-1;for (int j=1;j<=prime[0];j++)if (i*prime[j]>M-4) break;else{vis[i*prime[j]]=1;phi[i*prime[j]]=phi[i]*(prime[j]-(i%prime[j]!=0));if (i%prime[j]==0) break;}}phi[1]=1;for (T=in();T;T--){n=in();ans=0;for (int d=1;d*d<=n;d++)if (n%d==0){ans+=cal(n/d);if (d*d<n) ans+=cal(d);}printf("%lld\n",ans*n);}
}

【BZOJ2226】LCM SUM,数论之一维LCM(莫比乌斯反演)相关推荐

  1. nssl1232-函数【数论,欧拉函数,莫比乌斯反演】

    正题 题目大意 ∑d∣nf(d)=n\sum_{d|n}f(d)=nd∣n∑​f(d)=n 对于n个aia_iai​ 求 ∑i=1nf(ai)\sum_{i=1}^nf(a_i)i=1∑n​f(ai​ ...

  2. 【莫比乌斯反演】[HYSBZ/BZOJ2693]jzptab

    题目大意就是求∑ni=1∑mj=1lcm(i,j),但是有多组输入数据. 如果之前做过[莫比乌斯反演][HYSBZ\BZOJ2154]Crash的数字表格,就会发现,对于每一个询问,有O(n)的做法, ...

  3. 【BZOJ2154】Crash的数字表格,数论练习之二维LCM(莫比乌斯反演)

    Time:2016.06.18 Author:xiaoyimi 转载注明出处谢谢 看不见的分割线 传送门 思路: 设n≤m ∑i=1n∑j=1mlcm(i,j)\displaystyle \sum^n ...

  4. 【bzoj2694】Lcm 莫比乌斯反演+线性筛

    题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...

  5. 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) ...

  6. SPOJ 5971 lcm sum

    题目链接:https://www.spoj.pl/problems/LCMSUM/ SPOJ Problem Set (classical) 5971. LCM Sum Problem code: L ...

  7. Orac and LCM(数论)

    题目链接: Orac and LCM 大致题意: 给你一个长度为 n 的数组,求 gcd {lcm({ai , aj}) | i < j} 解题思路: gcd1=gcd[lcm(a1,a2),l ...

  8. 【数论+莫比乌斯反演】Exclusive Multiplication | gym103688E

    [数论+莫比乌斯反演]Exclusive Multiplication | gym103688 前言 题意 思路 代码 前言 [ f ( x ) ] [f(x)] [f(x)] 表示艾弗森括号,若 f ...

  9. P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值) Problem Sol ...

最新文章

  1. gis影像格式img转为ecw_微图影像地图导出拼接大图的参数说明
  2. C++ 十大经典排序算法原理及模板之STL方法实现以及稳定性分析
  3. python 操作mongo
  4. vue中v-for指令的使用之Vue知识点归纳(八)
  5. linux下安装nginx的采坑记录
  6. 模型保存的方法-----保存整个模型
  7. Kepware软件使用手册
  8. 深度时空3D卷积神经网络用于交通预测
  9. java: 找不到符号
  10. 用 Mac 输入罗马数字
  11. 数值计算和SVM讲解(下)
  12. 小网站云服务器配置推荐,小网站云服务器配置推荐
  13. matlab 黄金分析,matlab黄金分割法求解
  14. vmbox设置ubuntu共享文件夹_为什么共享文件夹、打印机访问还是受限?这几个设置解决90%问题...
  15. 自学 java如何入门?
  16. Android Telephony
  17. IT男需要学习文哲史
  18. 三本计算机的专业需要考研嘛,三本计算机考研难吗
  19. 基于51单片机的水温水流量检测/智能水龙头控制系统proteus仿真原理图PCB
  20. Java中夏令时问题

热门文章

  1. 程序猿必备!最简单的颈椎操
  2. 玩游戏提示计算机性能过低,如果玩游戏的fps低怎么办?八个问题和九个解决方案...
  3. java sql2005驱动_java.sql.SQLException:找不到适用于jdbc:microsoft:sqlserver的驱动程序...
  4. 社交网络图中结点的“重要性”计算
  5. 用mplfinance库定制A股常用的K线、均线图
  6. c++第二次上机实验项目二
  7. PHP PDO连接PostgreSQL报错 SCRAM authentication requires libpq version 10 or above in解决
  8. ES6语法---const和symbol
  9. wifi android手机版下载地址,手机随身wifi下载-手机随身WiFi 安卓版v1.6.3-PC6安卓网...
  10. mysql读写分离-借助中间键mycat