首页 > 其他分享 >GMOJ 8105. 代码之神 小Y

GMOJ 8105. 代码之神 小Y

时间:2024-08-05 18:49:58浏览次数:17  
标签:8105 lfloor right frac sum rfloor ax GMOJ 之神

给你 \(L\le 10^6\),\(x,y\le 100\),要求 \(\sum _{lcm(a,b)\le L} \left| ax-by \right|\)。

喜闻乐见的推式子:

\[\begin{aligned} &\sum _{lcm(a,b)\le L} \left| ax-by \right|\\ &=\sum _{d=1}^L d \sum _{a=1}^{\lfloor\frac{L}{d}\rfloor} \sum _{b=1}^{\lfloor\frac{L}{da}\rfloor} [\gcd(i,j)=1]\left|ax-by\right|(d是a和b的\gcd) \\ &=\sum _{d=1}^L d \sum _{a=1}^{\lfloor\frac{L}{d}\rfloor} \sum _{b=1}^{\lfloor\frac{L}{da}\rfloor} \sum_{u|i,u|j}\mu(u)\left|ax-by\right|(莫反) \\ &=\sum _{d=1}^L d \sum _{u=1}^{\lfloor\frac{L}{d}\rfloor} \mu(u)u \sum _{a=1}^{\lfloor\frac{L}{du^2}\rfloor} \sum _{b=1}^{\lfloor\frac{L}{du^2a}\rfloor} \left|ax-by\right|(改变枚举顺序) \\ &=\sum _{T=1}^L \sum _{u^2|T} \mu(u)u\frac{T}{u^2} \sum _{a=1}^{\lfloor\frac{L}{T}\rfloor} \sum _{b=1}^{\lfloor\frac{L}{Ta}\rfloor} \left|ax-by\right|(令T=du^2)\\ &=\sum _{T=1}^L (\sum _{u^2|T} \mu(u)\frac{T}{u}) (\sum _{a=1}^{\lfloor\frac{L}{T}\rfloor} \sum _{b=1}^{\lfloor\frac{L}{Ta}\rfloor} \left|ax-by\right|)(整理) \end{aligned} \]

其中,对于每一个 \(T\),前一个括号可以通过一开始从小到大枚举 \(u\) 贡献到 \(T\) 预处理出来,时间复杂度 \(\sum_{u=1}^L O(\frac{n}{i^2})<O(n\ln n)\);后一个括号相当于求 \(\sum_{T=1}^L w_Tf(\frac{L}{T})\),其中 \(f(n)=\sum_{i=1}^{n}\sum_{j=1}{\frac{n}{i}}\left|ix-jy\right|\),\(w\) 是第一个括号,可以用整除分块做,大概是 \(O(n\ln n)\),但是跑得很快。

点击开 D
const int N=1e6+99;
ll L,x,y,xi[N]={};
int mu[N]={},su[N]={}; bool flag[N]={};
ll f(int n) {
	int i,j,top; ll ans=0;
	for(i=1;i<=n;++i)
		for(j=1,top=n/i;j<=top;++j)
			ans+=abs(i*x-j*y);
	return ans;
}
int main()
{
	usefile("a");
	ll ans=0,i,j,l,r;
	read(L,x,y);
	flag[1]=true,mu[1]=1;
	for(i=2;i<=L;++i) {
		if(!flag[i]) su[++su[0]]=i,mu[i]=-1;
		for(j=1;j<=su[0]&&i*su[j]<=L;++j) {
			flag[i*su[j]]=true;
			if(i%su[j]==0) {
				mu[i*su[j]]=0; break;
			} else mu[i*su[j]]=-mu[i];
		}
	}
	for(i=1;i<=L;++i)
		if(mu[i])
			for(j=i*i;j<=L;j+=i*i)
				xi[j]+=mu[i]*j/i;
	for(i=1;i<=L;++i) xi[i]+=xi[i-1];
	for(l=1;l<=L;l=r+1)
		r=L/(L/l),ans+=(xi[r]-xi[l-1])*f(L/l);
	printf("%lld\n",ans);
	return 0;
}

标签:8105,lfloor,right,frac,sum,rfloor,ax,GMOJ,之神
From: https://www.cnblogs.com/fydj/p/-/GMOJ8105

相关文章

  • GMOJ 6975. 遗失的河图(map)
    原题每次处理全局最小值的行和列,然后把这些行和列删掉,分别相乘。那么,相当于处理一个L型,每行每列都要取到上界的方案数。令\(c\)和\(d\)分别为全局最小值的行数和列数,以及全局最小值为\(q\)。枚举至多有\(x\)行,至多有\(y\)列能取到最大值,即有\(c-x\)行和\(d-y\)......
  • 机器学习之神经网络
    简介神经网络(NeuralNetwork)是一种模仿人类大脑的机器学习算法,由一系列相互连接的神经元组成。它能够自动学习数据的特征和规律,并对新的输入数据进行预测和分类。神经网络作为一种模仿生物大脑机制的机器学习算法,其产生和发展主要源于以下几个方面的背景:对人脑认知......
  • linux笔记10--编辑器之神VIM
    文章目录1.简单介绍①为什么叫vim②linux常见的编辑器③注意事项④其它2.操作模式的划分①两种--国际上普通模式(命令操作模式)插入模式②三种--国内普通模式如何进入与退出界面插入模式如何进入与退出界面命令模式如何进入与退出界面常见的命令模式③......
  • AP8105 低功耗 PFM DC-DC 升压芯片
    概述AP8105系列产品是一种高效率、低纹波、工作频率高的PFM升压DC-DC变换器。AP8105系列产品仅需要四个外围元器件,就可完成将低输入的电池电压变换升压到所需的工作电压,非常适合于便携式1~4节普通电池应用的场合。电路采用了高性能、低功耗的参考电压电路结构,同时在......
  • 适合汽车应用的MAX96705AGTJ/V、DS90UB913ATRTVJQ1小尺寸串行器,以及TEF8105EN/N1汽车
    1、MAX96705AGTJ/V为小尺寸串行器,具有特别适合于汽车摄像应用的特性。其功能和引脚与MAX9271兼容。高带宽模式下,对于12位线性或组合HDR数据类型,并行时钟最大为116MHz。应用汽车摄像应用规格功能:串行器数据速率:1.6Gbps输入类型:CML输出类型:CMOS,LVCMOS输入数:1输出数:16电压-供电:1......
  • 冲刺 NOIP 400pts + 之神仙专题
    冲刺专题之\(DP\)\(T_A\)HelpingPeople$$codeforces$$题意给定一个长为\(n\)序列\(A\),其中有\(q\)个区间\([l,r]\)定义为\(B_i\),对于每一个区间,其有\(P_i\)的概率使\(A\)序列从\(l\)到\(r\)之间的数增加\(1\).问最后整个区间的最大值的期望......
  • 世微AP8105 低功耗PFM DC-DC变换器 升压芯片多种分装
    概述AP8105系列产品是一种效率、低纹波、工作频率高的PFM升压DC-DC变换器。AP8105系列产品仅需要四个元器件,就可完成将低输入的电池电压变换升压到所需的工作电压,非常适合于便携式1~4节普通电池应用的场合。电路采用了高性能、低功耗的参考电压电路结构,同时在生产中引入修正技术,保证......
  • 【2.5v/5v手电筒升压方案】AP8105只需四个外围件低噪音
    AP8105系列产品是一种高效率、低纹波、工作频率高的PFM升压DC-DC变换器。AP8105系列产品仅需要四个外围元器件,就可完成将低输入的电池电压变换升压到所需的工作电压,非常适合于便携式1~4节普通电池应用的场合。电路采用了高性能、低功耗的参考电压电路结构,同时在生产中引入......
  • 【2.5v/5v手电筒升压方案】AP8105只需四个外围件低噪音
    AP8105系列产品是一种高效率、低纹波、工作频率高的PFM升压DC-DC变换器。AP8105系列产品仅需要四个外围元器件,就可完成将低输入的电池电压变换升压到所需的工作电压,非常适合于便携式1~4节普通电池应用的场合。电路采用了高性能、低功耗的参考电压电路结构,同时在生产中引入......
  • Django:单表查询之神奇的双下划线
    一、单表查询中双下划线运用案例models.Tb1.objects.filter(id__lt=10,id__gt=1)、#获取id大于1且小于10的值models.Tb1.objects.filter(id__in=[11,22,33])#获取id等于11、22、33的数据models.Tb1.objects.exclude(id__in=[11,22,33])#notinmodels.Tb1.objec......