首页 > 编程语言 >算法学习笔记(21):数论分块

算法学习笔记(21):数论分块

时间:2024-06-06 21:00:18浏览次数:17  
标签:lfloor right frac 21 分块 数论 dfrac rfloor left

数论分块

大部分内容来源于OI-WIKI

引理1: \(\\forall a,b,c\in\mathbb{Z},\left\lfloor\frac{a}{bc}\right\rfloor=\left\lfloor\frac{\left\lfloor\frac{a}{b}\right\rfloor}{c}\right\rfloor\)

引理2: \(\lfloor \frac{n}{i} \rfloor\) 的取值有 \(O(\sqrt n)\) 种

引理 1 可以把一些分母搬上去, 转化成引理 2 的形式。 考虑引理 2 的式子的性质, 这启发我们计算 \(\sum \frac{n}{i}\) 时
可以快速统计。

有一个结论: 取值为 \(\large\frac{n}{l}\) 的最大的 \(i\) 等于 \(\large\lfloor \frac{n}{\lfloor\frac{n}{l}\rfloor} \rfloor\)。

所以我们就可以这么算 \(\large\sum \frac{n}{i}\) :

int Sum(int x) {
	int l = 1, r = 0, res = 0;
	while(l <= x) {
		r = x / (x / l);
		res += (r - l + 1) * (x / l);
		l = r + 1;
	}
	return res;
}

拓展的, 当我们需要计算 \(\large\sum f_i \times \frac{n}{i}\)时:

可以把 res += (r - l + 1) * (x / l); 替换成 res += (f[r] - f[l - 1]) * (x / l);

再拓展地: 取值为 \(\large\frac{n}{l}\) 的最大的 \(i\) 为 \(\large\lfloor \frac{n - 1}{\lfloor\frac{n - 1}{l}\rfloor} \rfloor\)。

不严谨的证明:

引理4: \(\left\lceil\dfrac ni\right\rceil=\left\lfloor\dfrac{n-1}i\right\rfloor+1\)

证明: \(\left\lfloor\dfrac{n-1}i\right\rfloor+1 = \left\lfloor\dfrac{n-1 + i}i\right\rfloor\), 考虑 $\dfrac{i - 1}{i} < 1 $, 所以易得前面的式子成立。

所以 \(\large\left\lceil\dfrac ni\right\rceil\) 分的块和 \(\left\lfloor\dfrac{n-1}i\right\rfloor\) 分的块一致。

标签:lfloor,right,frac,21,分块,数论,dfrac,rfloor,left
From: https://www.cnblogs.com/qerrj/p/18236010

相关文章

  • 部分数论学习笔记
    数论分块若可以\(O(1)\)计算\(f(r)-f(l)\),那么就可以\(O(\sqrtn)\)计算\(\sum^n_{i=1}f(i)(g\lfloor\frac{n}{i}\rfloor)\)。关于\(l,r\)的含义与计算:含义:\(\forallx\in[l,r],\lfloor\frac{n}{x}\rfloor\)相等计算:刚开始\(l\)肯定为\(1\),如何理解\(r=......
  • 从零手写实现 nginx-07-大文件传输 分块传输(chunked transfer)/ 分页传输(paging)
    前言大家好,我是老马。很高兴遇到你。我们希望实现最简单的http服务信息,可以处理静态文件。如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零手写实现nginx-01-为什么不......
  • 锐捷校园网自助服务系统 login_judge.jsf 任意文件读取漏洞复现(XVE-2024-2116)
    0x01产品简介锐捷校园网自助服务系统是锐捷网络推出的一款面向学校和校园网络管理的解决方案。该系统旨在提供便捷的网络自助服务,使学生、教职员工和网络管理员能够更好地管理和利用校园网络资源。0x02漏洞概述校园网自助服务系统/selfservice/selfservice/module/scgroup......
  • I Doc View 在线文档预览 qJvqhFt.json 任意文件读取漏洞复现(XVE-2024-2115)
    0x01产品简介iDocView是一个在线文档解析应用,旨在提供便捷的文件查看和编辑服务。0x02漏洞概述iDocView是一个在线文档预览系统/view/qJvqhFt.json接口处存在任意文件读取漏洞,未授权的攻击者可以利用此接口并携带默认token读取服务器敏感文件信息,使系统处于极度不安全的......
  • SD321BF 低功耗单运算放大器芯片IC
    一般说明    SD321为低功耗系统带来性能和经济性。具有高单位增益频率和保证0.4V/在此情况下,静态电流仅为430μa/aef(5V)。输入通用模式范围包括地面,因此该设备能够在单电源应用和双电源应用中工作。它还能够舒适地驱动大容量负载。    SD321可在SOT23-5封装......
  • PLA2216 Logic Analyser Probes for Rigol DHO900 and MSO5000 Oscilloscopes
    TheoriginalPLA2216fromRigolisexpensive.Peoplemadetheirownandopensourcedthedesign. TheearlyteardownandDIYishere: September28,2019,07:23:29amfrom https://www.eevblog.com/forum/testgear/rpl1116-active-logic-probe-pod-for-1000z-seri......
  • Sz-Admin | SpringBoot3 JDK21 Vue3开源后台RBAC管理系统 | 2024年好用的开源RBAC管理
    简介接触了很多优秀的开源和闭源项目,在使用过程中也发现一些问题,不甘满足的我遂产生了想法:于是利用休息时间编写了一套后台管理系统,它灵活、简洁、高效,拥抱最新的技术,因此Sz-Admin便诞生了,也意为升职Admin,升职加薪节节高。SzAdmin,一个基于SpringBoot3、Vue3和El......
  • 「清新题精讲」P2150 [NOI2015] 寿司晚宴
    P2150[NOI2015]寿司晚宴Statement给定\(n-1\)个数分别为\(2\simn\),从中选出交集为空的两个集合\(A,B\)(集合的并集不必须为\(\{2,\dots,n\}\),且集合可为空)使得不存在\(a\inA,b\inB\)满足\((a,b)\ne1\)(即任意两个数均互质),将方案数对\(p\)取模后输出。\(2\len\le......
  • MOSFET驱动电路(EG2104)选型及PCB设计要点
    一.驱动电路EG2104驱动芯片带SD脚,防止上电自启动,SD直连单片机,上电初始化为低电平,先输出pwm,再把SD置高即可(SD为1时驱动芯片才工作)自举电容:通俗来说就是上管的s级不像下管的s级一样是GND若想使上管导通,Vgs>Vth,栅极就得在s级上把电压抬高从而导通(最好选1206封装的NP0和C0G电容......
  • LeViT(ICCV 2021)原理与代码解析
    paper:LeViT:aVisionTransformerinConvNet'sClothingforFasterInferenceofficialimplementation:https://github.com/facebookresearch/LeViTthird-partyimplementation:https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/levit.......