[分块] 分块入门1~4

何为分块

在学习完线段树和树状数组后,这两种数据结构已经能够解决大部分的问题了,但在使用过程中不难发现他们的缺点

  • 树状数组 O ( ( N + M ) l o g N ) O((N+M)logN) O((N+M)logN):局限性过大,不易扩展到普遍性题目
  • 线段树 O ( ( N + M ) l o g N ) O((N+M)logN) O((N+M)logN):虽然能够扩展到许多题目,其也有许多类型,但不够直观,并且代码长,细节多…

分块应运而生

分块的基本思想是通过适当的划分,预处理一部分信息并保存下来,用空间换取时间,达到"时空平衡" ———《算法竞赛》

说得通俗一点,就是依据某种方法优化的暴力算法,相比线段树和树状数组,分块思路更简单,且更通用,代码容易实现。

分块的基本过程

分块,分块,顾名思义,是将一个序列分成若干段来进行操作。

通常将一个序列A分成若干个不超过 ⌊ N ⌋ \lfloor \sqrt{N} \rfloor N 的段,其中第i段的左端点为 ( i − 1 ) ⌊ N ⌋ + 1 (i-1)\lfloor \sqrt{N} \rfloor +1 (i1)N +1,右端点为 m i n ( i ∗ ⌊ N ⌋ , N ) min(i*\lfloor \sqrt{N} \rfloor,N) min(iN

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值