首页 > 其他分享 >分块、莫队、块状链表及一些根号方法 总结

分块、莫队、块状链表及一些根号方法 总结

时间:2024-08-24 09:48:01浏览次数:6  
标签:前缀 分块 复杂度 链表 平衡 莫队 根号

第二分块没改出来给我干破防了。提交记录:五彩斑斓的世界()。


分块的种类

  • 序列分块:本质是在下标轴(\(i\))上分块。
  • 值域分块:本质是在值的轴(\(a_i\))上分块。
  • 操作分块:本质是在时间轴(一般是输入顺序)上分块。

这几种分块应该是可以套的。

分块、莫队、根号分治的核心

平衡

  • 平衡整块和散块的[时间](?)复杂度。(分块)
  • 平衡修改和查询的[时间](?)复杂度。(分块)
    • 如 单点加,区间求和:
      分块维护原序列(直接做):\(O(1)\) 修改,\(O(\sqrt n)\) 查询。
      分块维护前缀和(整块维护整个序列的前缀和,散块维护块内的前缀和):\(O(\sqrt n)\) 修改,\(O(1)\) 查询。
  • 平衡预处理和[操作](?)的[时间](?)复杂度。(在线莫队)
  • 平衡两种情况的[时间](?)复杂度。(根号分治)

目前想到了这些。

分块的基本思想是,通过对原数据的适当划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复杂度。分块的时间复杂度主要取决于分块的块长,一般可以通过均值不等式求出某个问题下的最优块长,以及相应的时间复杂度。—— August 22, 2024 cyf 老师的 ppt

标签:前缀,分块,复杂度,链表,平衡,莫队,根号
From: https://www.cnblogs.com/huangkxQwQ/p/18377423

相关文章

  • 1075 链表元素分类——PAT乙级
    给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而[0,K]区间内的元素都排在大于K的元素前面。但每一类内部元素的顺序是不能改变的。例如:给定链表为18→7→-4→0→5→-6→10→11→-2,K为10,则输出应该为-4→-6→-2→7→0→5→10......
  • 力扣: 移除链表元素
    文章目录需求虚拟头结点法原头结点法结尾需求给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输......
  • 【408DS算法题】022基础-递增输出单链表中的结点值
    Index题目分析实现总结以上内容稍后补全,以下内容来自https://blog.csdn.net/weixin_60702024/article/details/141336041题目分析实现总结分析题目给定单链表的头结点,按照递增的顺序,输出单链表结点的值。分析实现具体实现如下:总结注意delete执行后,只会将......
  • C++ 链表
    1.前言链表:不仅存储 当前元素的数据,还存储着 元素排列顺序2. 正题2.1如何存储节点?我们可以使用结构体 数组来存储 链表节点structNode{intval;//可以是string或其它复杂的类型intnxt;}node[N];Tip:下标顺序不是单链表顺序 val代表 元......
  • 数据结构--链表(单向链表--有头链表、无头链表)链表的插入、删除、修改、查找
    什么是链表?链表是一种基本的数据结构,用于存储一组数据元素。与数组不同,链表的元素在内存中并不连续存储。链表由一系列节点组成,每个节点包含以下两个主要部分:1.数据部分:存储节点所包含的数据。2.指针部分:存储指向下一个节点的指针(对于单向链表),或者存储指向前一个节点和下......
  • 数据结构之链表(看不懂你来找我)
    数据结构......
  • 链表的一些常用函数
    本文用一个相同的主函数和结构体来讲述链表的14种常见函数主函数和结构体#include<stdio.h>#include<stdlib.h>typedefstructnode{ intnum; structnode*p_next;}node;typedefstruct{ nodehead; nodetail;}link;intmain(){ linklnk={0}; li......
  • 数据结构链表入门指南 链表基本代码实现以及测试步骤
    链表介绍链表是一种数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。链表的基本特性包括:动态大小:链表的大小可以根据需要动态调整,不像数组那样需要事先定义固定大小。节点连接:每个节点通过指针连接到下一个节点,从而形成一个链状结构。灵活插入和......
  • java创建链表异常解决
    问题解决问题解释该错误表明,在试图创建非静态类实例时,没有正确引用外部类的实例。源代码如下packagevjudge;importjava.util.Scanner;publicclasstest{//节点类publicclassNode{intdata;Nodenext;Node(intdata){......
  • 单链表入门
    1.概念与结构概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。2.结点与顺序表不同的是,链表⾥的每一个都是独⽴申请下来的空间,我们称之为“结点/结点”结点的组成主要有两个部分:当前结点要保存的数据......