随笔分类 - 数据结构
摘要:树状数组的问题模型: 现在有一个这样的问题: 有一个数组$a$,下标从$0$到$n 1$,现在你要进行$w$次修改,$q$次查询。 修改是修改数组中某一个元素的值; 查询是查询数组中任意一个区间的和,$w+q0) { res+=c[x]; x =lowbit(x); } return res; }
阅读全文
摘要:线段树原理 线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为$O(logn)$。 线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间,例如父亲的区间是$[a,b]$,那么$(c
阅读全文
摘要:`RMQ(Range Minimum/Maximum Query)`,即区间最值问题。 对于长度为 的数列 ,回答若干查询 `RMQ(A,i,j)(i,j &A) { int n=A.size(); for (int i=0; i
阅读全文
摘要:普通莫队 简介 莫队是一种基于分块思想的离线算法,用于解决区间问题,适用范围如下: 1. 只有询问没有修改。 2. 允许离线。 3. 在已知询问$[l,r]$答案的情况下可以$O(1)$得到$[l,r−1],[l,r+1],[l−1,r],[l+1,r]$的答案。 满足以上三个条件就可以在$O(n\
阅读全文

浙公网安备 33010602011771号