数论分块(整除分块)学习笔记

本文是一篇关于数论分块(整除分块)的学习笔记,详细介绍了如何处理形如 i=1∑n⌊in⌋ 的式子。通过证明 n/i 的取值最多只有 2n 种,提出了利用分块思想达到 Θ(n) 时间复杂度的算法。文章通过例题解析,包括洛谷P2261 [CQOI2007]余数求和和洛谷P2260 [清华集训2012]模积和,阐述了分块方法在不同求和问题中的应用,并给出了简化计算的技巧和AC代码示例。
摘要由CSDN通过智能技术生成

参考的资料尽可能都列出来吧:

  • 整除分块(数论分块) b y   0 x f f f e \sf by~0\color{red}xfffe by 0xfffe
  • 整除分块 b y   p e n g  ⁣ ⁣ −  ⁣ ⁣ y m \sf by~p\color{red}eng\!\!-\!\!ym by pengym
  • 数论分块 b y   h e n r y _ y \sf by~h\color{red}enry\_y by henry_y

无前置芝士,但至少你要能看懂本文中出现的所有记号


Lv.1

想不出标题只好这样写标题的屑作者

数论分块是用于处理形如 ∑ i = 1 n ⌊ n i ⌋ \sum\limits_{i=1}^n \left\lfloor\dfrac ni\right\rfloor i=1nin 的式子的方法。
为了简洁和减轻 LaTeX \LaTeX LATEX 渲染的负担,下文中会用形如 i / j i/j i/j 的式子表示 ⌊ j i ⌋ \lfloor\frac ji\rfloor ij

显然这个式子可以 Θ ( n ) \Theta(n) Θ(n) 暴力求出,但是实际上有优秀得多的 Θ ( n ) \Theta(\sqrt n) Θ(n ) 解法。

首先我们证明: n / i n/i n/i 的取值最多只有 2 n 2\sqrt n 2n 种。
1 ≤ i ≤ n 1 \le i \le \sqrt n 1in 时, i i i 的取值有 n \sqrt n n 种,则上式对应的取值也最多只有 n \sqrt n n 种。
n < i ≤ n \sqrt n <i \le n n <in 时, 1 ≤ n / i ≤ n 1 \le n/i \le \sqrt n 1n/in ,则式子的取值也最多只有 n \sqrt n n 种。
综上,命题成立。

那么,如果我们能枚举 n / i n/i n/i 的值求得答案,算法的时间复杂度就可以达到 Θ ( n ) \Theta(\sqrt n) Θ(n )
现在的问题就是,对于 n / i n/i n/i 的一个取值(设为 k k k),满足 n / i = k n/i=k n/i=k i i i 有多少个。

考虑用数学方法确定 i i i 的范围。
实际上, i i i 的上限为 n / ( n / i ) n/(n/i) n/(n/i) 。可以感性理解,但下面还是给出证明:
i i i 的某个取值满足 n / i = k n/i=k n/i=k

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值