51nod1227 平均最小公倍数
$
Ans(l,r)=ans(r)-ans(l-1)
\\
ans(n)=\sum\limits_{i=1}^n
	\sum\limits_{j=1}^i
		\frac{j}{gcd(i,j)}
\\=
\sum\limits_{g=1}^n
	\sum\limits_{i=1}^{n/g}
		\sum\limits_{j=1}^n
			j\cdot [gcd(i,j)=1]
\\=
\sum\limits_{g=1}^n
	\sum\limits_{i=1}^{n/g}
		\sum\limits_{j=1}^n
			j\sum\limits_{d|i\wedge d|j}\mu(d)
\\=
\sum\limits_{g=1}^n
	\sum\limits_{d=1}^{n/g}
		\mu(d)d\sum\limits_{i=1}^{n/gd}
			\sum\limits_{j=1}^n
				j
\\=
\sum\limits_{t=1}^n
	\sum\limits_{d|t}\mu(d)d
	\sum\limits_{i=1}^{n/t}
		\sum\limits_{j=1}^n
			j
\\=
\sum\limits_{t=1}^n
	a(t)S(n/t)
,\;
a(n)=\sum\limits_{d|n}\mu(d)d
,\;
S(n)=n(n+1)(n+2)/6=n(n+1)(2n+1)/12+n(n+1)/4
\\
A(n)=\sum\limits_{i=1}^na(i)
\\
A(n)=n-\sum\limits_{i=2}^nA(n/i)i
$
时间复杂度$O(n^{2/3})$
#include<bits/stdc++.h>
typedef unsigned long long i64;
const int P=1e9+,I2=(P+)/,I6=(P+)/;
int B;
const int M=3e6+;
int ps[M/],pp=;
bool np[M];
int va[M],vA[],n0;
int S3(int n){
return i64(n)*(n+)%P*(n+)%P;
}
int A(int n){
if(n<=B)return va[n];
int&w=vA[n0/n];
if(w)return w;
i64 s=;
for(int l=,r,c;l<n;l=r){
r=n/(c=n/(l+));
if((s+=i64(r+l+)*(r-l)%P*A(c))>i64(1.5e19))s%=P;
}
s=s%P*I2%P;
return w=(n-s+P)%P;
}
int F(int n){
i64 s=;
for(int l=,r,c,s0=,s1;l<n;l=r){
r=n/(c=n/(l+));
s1=A(r);
if((s+=i64(s1-s0+P)*S3(c))>i64(1.5e19))s%=P;
s0=s1;
}
return s%P*I6%P;
}
void pre(){
va[]=;
for(int i=;i<=B;++i){
if(!np[i]){
ps[pp++]=i;
va[i]=P+-i;
}
for(int j=,k;j<pp&&(k=i*ps[j])<=B;++j){
np[k]=;
if(i%ps[j]){
va[k]=va[i]*i64(P+-ps[j])%P;
}else{
va[k]=va[i];
break;
}
}
}
for(int i=;i<=B;++i)if((va[i]+=va[i-])>=P)va[i]-=P;
}
int cal(int n){
n0=n;
memset(vA,,sizeof(vA));
return F(n);
}
int main(){
int l,r;
scanf("%d%d",&l,&r);
B=pow(r,./.)*2.5;
pre();
printf("%d\n",(cal(r)-cal(l-)+P)%P);
return ;
}
51nod1227 平均最小公倍数的更多相关文章
- [51nod1227]平均最小公倍数(莫比乌斯反演+杜教筛)
		
题意 求 $\sum_{i=a}^b \sum_{j=1}^i \frac{lcm(i,j)}{i}$. 分析 只需要求出前缀和, $$\begin{aligned}\sum_{i=1}^n \sum ...
 - 51NOD 1227 平均最小公倍数 [杜教筛]
		
1227 平均最小公倍数 题意:求\(\frac{1}{n} \sum_{i=1}^n lcm(n,i)\) 和的弱化版? \[ ans = \frac{1}{2}((\sum_{i=1}^n \su ...
 - 51 nod 1227 平均最小公倍数
		
原题链接 Lcm(a,b)表示a和b的最小公倍数,A(n)表示Lcm(n,i)的平均数(1 <= i <= n), 例如:A(4) = (Lcm(1,4) + Lcm(2,4) + Lcm ...
 - 【51nod】1227 平均最小公倍数
		
题解 这个故事告诉们数论函数不要往分式上跑,你推不出来 好久没推式子了这么明显的转化我都忘了= = 首先\(A(n) = \frac{1}{n} \sum_{i = 1}^{n} \frac{i * ...
 - 51NOD 1227:平均最小公倍数——题解
		
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1227 懒得打公式了,看这位的吧:https://blog.csdn.ne ...
 - 51nod 1227 平均最小公倍数【欧拉函数+杜教筛】
		
以后这种题能用phi的就不要用mu-mu往往会带着个ln然后被卡常致死 把题目要求转换为前缀和相减的形式,写出来大概是要求这样一个式子: \[ \sum_{i=1}^{n}\sum_{j=1}^{i} ...
 - 51nod-1227-平均最小公倍数
		
题意 定义 \(n\) 的平均最小公倍数: \[ A(n)=\frac{1}{n}\sum _{i=1}^n\text{lcm}(n,i) \] 求 \[ \sum _{i=L}^RA(i) \] \ ...
 - NOIp2018停课刷题记录
		
Preface 老叶说了高中停课但是初中不停的消息后我就为争取民主献出一份力量 其实就是和老师申请了下让我们HW的三个人听课结果真停了 那么还是珍惜这次机会好好提升下自己吧不然就\(AFO\)了 Li ...
 - 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记
		
最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...
 
随机推荐
- 编译原理子cygwin的使用
			
目的:熟悉cygwin环境的使用,学习使用lex写简单的词法分析程序,会在cygwin环境下使用flex调试lex写的程序 内容:使用cygwin下的flex工具将exam1.l和exam2.l编译并 ...
 - Vue组件中的问题
			
错误信息: 提示信息含义:组件模板中只能包含一个根元素 解决办法:在模板元素内部增加块级元素div将这些元素标签包裹起来,如图所示
 - select默认显示
			
select默认显示第一个option,但大部分需求都是显示一个请选择,点击后在显示option的内容. 就像上图一样 但如果正常写的话会是像下面这样显示 请选择也会显示在下拉款里面,这样就很不友好 ...
 - vue-router+elelment-ui,实现导航栏激活高亮
			
<el-menu :default-active="$route.path" class="el-menu-vertical-demo" backgrou ...
 - 最近的AI
			
虚拟币和AI 两个大类怎么兴起?
 - hive从本地导入数据时出现「Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask」错误
			
现象 通过load data local导入本地文件时报无法导入的错误 hive> load data local inpath '/home/hadoop/out/mid_test.txt' ...
 - Sqlite 参数化 模糊查询 解决方案
			
转自:https://codedefault.com/2018/does-dapper-support-the-like-operator-in-csharp-application 问题描述 如题, ...
 - python 各种开源库
			
测试开发 来源:https://www.jianshu.com/p/ea6f7fb69501 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. 链接 sel ...
 - 微信小程序之跳转、请求、带参数请求小例子
			
wx.request(OBJECT) wx.request发起的是 HTTPS 请求.一个微信小程序,同时只能有5个网络请求连接. 具体参数说明参看微信小程序官方文档-发起请求. 例: //当页面加载 ...
 - 日常遇错之Unable to save settings: Failed to save settings. Please restart PyCharm
			
将工程的.ideas目录删掉,重启pycharm即可.