首页 > 其他分享 >简单分块与莫队

简单分块与莫队

时间:2023-02-01 13:34:40浏览次数:46  
标签:分块 莫队 复杂度 整块 简单 序列 散块 线段

1 - 分块

1.1 - 定义

分块是将要维护的信息分成若干块,而后通过维护整块的信息或者是块间的信息来优化算法。

1.2 - 序列分块

在序列上以线段树来类比,线段树是将序列每次对半分,最后得到一个比较完美的二叉树的结构。分块是将序列首先分成一个多叉树,根的儿子节点的儿子就直接是叶子。

1.3 - 复杂度分析

复杂度分析:假设块的大小是 \(B\),一共有 \(\frac nB\) 块,整块部分的复杂的度就是 \(O\left(\frac nB\right)\),散块部分的复杂度是 \(O(B)\),所以整体复杂度是 \(O\left(\frac nB+B\right)\),显然 \(B\) 取 \(\sqrt n\) 的时候最优。

分块的时候务必分析时间复杂度来取合适的块大小,不要无脑取根号。

1.4 - 分块的优点

分块在修改的时候,只有若干整块以及两个散块需要修改,在整块的处理上,其和线段树等一样,都是打标记,但是在散块上,其只需要暴力修改两个小散块的信息,整个修改过程只和散块中的元素有关,而线段树等数据结构会从叶子开始一层层往上更新,最后牵扯到整个序列信息。

分块在统计答案的时候只有整块的散块的区别,不像线段树等那般有多层结构,这使得信息难以合并的时候,分块有其特殊的用处。

1.5 - 分块思想的另一种应用

对于动态修改问题,有时候我们会遇到这样一种情况:想到了两种做法,一种可以快速修改,但查询很慢;一种可以快速查询,但是修改很慢。这种时候也可以使用分块算法进行折中处理。

2 - 莫队

2.1 普通莫队

对于序列上的区间询可问题,如果从\([η的答案能够O(1)扩展到[1ー1,r,7+1,r,[,r+1,[,rー]\)的答案,那么可以在O(nvm)的复杂度内求出所有询可的答案,实际就是一种优美的暴力。

标签:分块,莫队,复杂度,整块,简单,序列,散块,线段
From: https://www.cnblogs.com/DEV3937/p/simple-block-and-Mo-team.html

相关文章

  • android自定义adapter之简单写法
      自定义adapter比较常用,很多人还在使用extendsBaseAdapter,然后写一大堆重复的代码,这里是提供一个封装的工具类,把重复的代码都省略掉,让adapter变的简洁一些。  给......
  • ffmpeg 简单教程
    关于ffmpeg的另一个帖子​​​https://www.cnprint.org/bbs/thread/83/345103/​​检测是否安装成功环境变量:测试是否安装成功win+r输入:cmdcmd:输入ffmpeg-version......
  • python pyqt5简单界面
    ​​https://doc.qt.io/qtforpython/PySide6/QtWidgets/QTableWidget.html​​importsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QDesktopWidget,QHBoxLayou......
  • pyqt5 简单工具类
    fromPyQt5.QtWidgetsimportQPushButton,QLabel,QLineEdit,QTextEdit,QPlainTextEdit,QCheckBoxfromPyQt5.QtWidgetsimportQComboBox,QRadioButtonclassMYWIDGET():......
  • pyqt5 简单模板
    importsysfromPyQt5.QtCoreimportQtfromPyQt5.QtWidgetsimportQWidget,QDesktopWidget,QVBoxLayout,QHBoxLayout,QApplication,QButtonGroupfromutils.tableUt......
  • C++ traits 萃取的一些简单理解
    摘取自<effectivec++>  ......
  • 服务器VPC申请后简单加固过程记录 系统版本 CentOS7.6.1810
    搞了个便宜的服务器大概看了下都是默认配置简单做下配置ssh配置#更换端口vi/etc/ssh/sshd_config将其中的Port22中的22改为自己想用的端口建议用10000以上的......
  • 简单三步上传公众号文章附件
     网址:https://uom.cn/f/# 第一步:打开网站,微信扫码登录,会自动返回主页 第二步:点击选择文件按钮 第三步:选择文件并打开  此时上传就已经完成了,会提供三个方......
  • 设计模式-Simple Factory(简单工厂)
    模式说明简单工厂模式又叫静态工厂模式,但不属于23种设计模式。简单工厂模式是由一个工厂对象决定创建出哪一个产品类的实例。UML结构图优点实现了对责任的分割,隔离了......
  • 安卓-Notification简单操作
    一、基本的通知publicvoidbasicNotify(Viewview){//注意:这里如果:Build.VERSION.SDK_INT>=Build.VERSION_CODES.O才设置channelIdNotifica......