首页 > 编程语言 >【学习笔记】根号算法

【学习笔记】根号算法

时间:2024-01-31 09:12:41浏览次数:40  
标签:frac 复杂度 个块 笔记 算法 散块 线段 根号

1.分块

【模板】线段树 1

我们把整个序列割成 \(s\) 个块,则块长为 \(\frac{n}{s}\),对于一个跨越区间 \([l,r]\) 的修改/询问,很容易看出它最多包含两个散块,然后中间有一堆整块。

考虑对于整块我们类似线段树的维护方法打 tag,然后对于散块 直接暴力

分析复杂度,最多有 \(s\) 个块,散块暴力大概要 \(\frac{n}{s}\) 次,则总复杂度是 \(O(q\times(s+\frac{n}{s}))\)。

2.莫队

3.根号分治

标签:frac,复杂度,个块,笔记,算法,散块,线段,根号
From: https://www.cnblogs.com/Zsq20100122/p/17998493

相关文章

  • 代码随想录算法训练营第三天 |203.移除链表元素 , 707.设计链表,206.反转链表
    206.反转链表 已解答简单 相关标签相关企业 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[] 提示:链......
  • SAM & 广义 SAM & SA 学习笔记
    SAM定理SAM由parent树与一张DAG构成,他们共用点集。\(endpos(s)\)表示\(s\)出现的所有位置上最后一个字符所处位置的集合。SAM中DAG上每条路径对应原串上的一个子串,一个子串也与其对应。在SAM的DAG上到达一个点的所有子串的endpos相同。一个节点上储存的最......
  • 【学习笔记】排序
    选择排序选择排序是一种简单的排序算法。它的原理是每次找到数组中的最小值放到正确的位置。选择排序的最好、最坏、平均时间复杂度都是\(O(n^2)\),空间复杂度为\(O(1)\)。由于存在交换这一操作,选择排序是一个不稳定的排序算法。voidselectionSort(inta[],intn){ for(int......
  • 大三寒假学习进度笔记21
    今天看到了一道蓝桥杯的题目,其中使用到了dfs算法,在之前的数据结构中学习过这种算法,但是并没有在代码中使用过,因此根据给出的思路在写了一遍这个题目。#include<bits/stdc++.h>usingnamespacestd;inta[100],ans=0;boolvis[20240000];boolcheck(intdate){if(vis[d......
  • CSAPP学习笔记——chapter5 优化程序性能
    编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。对于这第二点,理解优化编译器的能力和局限性是很重要的。编写程序方式中看上去只是一点小小的变动,都会引起编译器优化方式很大的变化......
  • 【侯捷C++面向对象笔记】补充5-new & delete重载
    平时所使用的new和delete操作,称之为表达式,一般由好几个步骤组成。如上图所示,new表达式会被编译器转化为三个步骤。new表达式不能重载,但其中operatornew是可以重载的。➡️全局::operatornew的重载why不能放在namespace内?因为全局operatornew是放在defaultglobalnamespac......
  • openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表
    openGauss学习笔记-211openGauss数据库运维-高危操作一览表各项操作请严格遵守指导书操作,同时避免执行如下高危操作。211.1禁止操作表1中描述在产品的操作与维护阶段,进行日常操作时应注意的严禁操作。表1禁用操作操作名称操作风险严禁修改数据目录下文件名,权限,......
  • 【侯捷C++面向对象笔记】补充2-pointer-like & function-like class
    关键词:仿函数pointer-like:将一个类设计得像指针一样,通常通过重载*和->操作符实现。function-like:将类的成员设计得能像函数一样使用,通过重载()操作符实现。TipDemo应用:智能指针注意:->符号在作用一次后,会继续作用下去(不同于*号)Foof(*sp):f为一个Foo对象本体,使用时f.m......
  • 【侯捷C++面向对象笔记】补充3-template
    关键词:类模板,函数模板,成员模板,模板特化“泛化”和“特化”TipDemo类模板定义时需要显式地指定类型名。函数模板定义时编译器自动进行实参推导类型(但不提供隐式转换)。成员模板:模板中还包含模板模板(全)特化格式:template<>尖括号内为空模板偏特化(partia......
  • 【侯捷C++面向对象笔记】补充4-object model
    关键词:虚函数表,动态绑定,多态每个对象都维护自己的虚表指针,指向类的虚函数表。(所以对象的size比其包含的所有数据size多4,即虚指针大小)➡️动态绑定:(多态的实现原理)通过指针p找到对象c的vptr通过vptr找到classC的vtbl在vtbl中找到第n个虚函数并调用➡️子类调用父类函数隐......