随笔分类 - 数据结构
摘要:普通并查集 就是开一个 数组表示 的祖先节点。 初始化 for(int i=1;i<=n;i++)fa[i]=i,siz[i]=1; //fa[i]初始状态一定是只像自己的,siz[i]:表示 以 i 为根的子树大小 查询 inline int getf(int x)
阅读全文
摘要:大体思想 线段树分治是一种用于解决区间操作和时间点查询的算法。它的主要思想是以时间为下标建立线段树,将在某一时间段内生效的操作记录在线段树上,然后对于某一时间点的查询,可以直接从线段树上得到结果。线段树是一种容易维护区间的数据结构,它通过不断以中点分治区间,形成了 层的树形结构。 类
阅读全文
摘要:维护历史值 当要修改一个节点时,把跟他有关的线段树中所有节点舍弃,并建立新节点连接. 代码如下: #include <bits/stdc++.h> using namespace std; const int N=1e6+5; int n,m,a[N],root[N],top; struct nod
阅读全文
摘要:P4097 【模板】李超线段树 前置知识 线段树的基本思路 初中八年级基础知识 大体思路 李超线段树利用线段树思想, 可以支持维护支持区间插入线段,与单点查询最值。 在线段树中,每个节点存放线段的下标,同时,存的这一条线段在该区间内大部分处于比其他线段更高的位置 具体思路 变量 int n,cnt;
阅读全文