![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机_算法_树
文章平均质量分 81
franztao
不想说话
展开
-
树链剖分
“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节点数,dep[v]表示v的深度(根深度为1),top[v]表示v所在的重链的顶端节点,fa[v]表示v的父亲,son[转载 2015-03-12 16:25:34 · 259 阅读 · 0 评论 -
最小 k 度限制生成树
所谓最小 k 度限制生成树,就是指有特殊的某一点的度不能超过k时的最小生成树。简单思想:设特殊的那点为v0,先把v0,删除,求出剩下连通图的所有最小生成树,假如有m棵最小生成树,那么这些生成树必定要跟v0点相连,也就是说这棵生成树的v0点至少是m度的。若m>k,条件不成立,无法找到最小 k 度限制生成树;若m<=k,则枚举m到k的所有最小生成树,即一步步将v0点的度加1,直到v0点的度原创 2015-03-12 16:26:28 · 564 阅读 · 0 评论 -
树链剖分_模板
spoj QTREE题目:给出一棵树,有两种操作:1.修改一条边的边权。2.询问节点a到b的最大边权。 直接粘代码。 #include #include #include #include #include转载 2015-03-13 09:57:57 · 386 阅读 · 0 评论 -
左偏树
2.1.2 可并堆的定义可并堆(Mergeable Heap)也是一种抽象数据类型,它除了支持优先队列的三个基本操作(Insert, Minimum, Delete-Min),还支持一个额外的操作——合并操作:H ← Merge(H1,H2)Merge( ) 构造并返回一个包含H1和H2所有元素的新堆H。 O(n),用它来实现可并堆,则合并操作必原创 2015-03-12 16:44:14 · 284 阅读 · 0 评论 -
线段树_模板
#define lson l,m,rt#define rson m+1,r,rt#define maxn 111111int tree[maxnint col[maxnint f;void pushup(int rt){ tree[rt]=tree[rt //max[rt]=max[rt}原创 2015-03-13 10:16:04 · 374 阅读 · 0 评论 -
RMQ (Range Minimum/Maximum Query)问题
**************************************************************************************************************一维RMQ查找最大值下标模板一维RMQ模版二维RMQ模板**********************************原创 2015-03-13 10:08:38 · 306 阅读 · 0 评论 -
有向树与树的括号序列最小表示法
[有向树] 一个弱连通有向图,若去掉方向后得到一棵树,则称此有向图为一棵有向树,记为T。[外向树] 若一个有向树T,有且只有一个顶点入度为0,其余顶点入度都为1,则称T为外向树。T中入度为0的节点被称为T的根节点,出度为0的节点被称为T的叶节点。每个节点的有向边指向的节点被称为该节点的子节点。[内向树] 若一个有向树T,有且只有一个顶点出度为0,其余顶点出度都为1,则称T为内向原创 2015-03-12 16:23:15 · 890 阅读 · 1 评论 -
树状数组
基本概念设A[1..N]为一个长为N的序列,即对于序列A有以下操作:【1】修改操作:将A[x]的值加上c;【2】求和操作:求此时A[l..r]的和。 } 原数组a} 树状数组C C1=a1C2=a1+a2C3=a3C4=a1+a2+a3+a4C5=a5C6=a5原创 2015-03-14 09:23:10 · 326 阅读 · 0 评论 -
划分树
划分树和归并树都是用线段树作为辅助的,原理是基于 快排 和 归并排序 的。划分树的建树过程基本就是模拟快排过程,取一个已经排过序的区间中值,然后把小于中值的点放左边,大于的放右边。并且记录d层第i个数之前(包括i)小于中值的放在左边的数。 #include #include #include #include using namespace转载 2015-03-14 09:35:18 · 397 阅读 · 0 评论