什么是分块思想

文章目录

  • 一、分块思想是什么?
  • 二、使用原理
  • 总结


一、分块思想是什么?

分块思想说实话它不是一种算法,而是一种暴力思想,它的核心是将一个完整的区间分成几块不同的区间,然后对这些区间进行处理,可以实现快速修改和区间查询。
分块是一种很灵活的思想,相较于线段树和树状数组,分块的优点是通用性更好,可以维护很多线段树和树状数组无法维护的信息。
分块的缺点在于其时间复杂度较于线段树和树状数组来说还不够好。

二、使用原理

分块思想:将所有数据分成若干块,维护块内信息。
什么是分块思想_第1张图片
具体流程(个人理解):
传统暴力的添加和删除元素时需要O(n)的复杂度来移动元素。
而对于分块思想的数据,如果要处理的数据恰好在一个块中,可直接处理。
如:
什么是分块思想_第2张图片
如果要处理的数据不在一个整块,可划分为多段进行处理。
什么是分块思想_第3张图片


总结

分块算法的思想在于:提前预处理好整块的信息,对于整块的进行标记维护,记录区间的信息,对于不足整块的局部信息则是进行朴素的更新。

你可能感兴趣的:(随记,学习,c++,程序人生)