平衡二叉树 AVL( 发明者为Adel'son-Vel'skii 和 Landis)是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。首先我们知道,当插入一个节点,从此插入点到树根节点路径上的所有节点的平衡都可能被打破,如何解决这个问题呢?这里不讲大多数书上提的什么平衡因子,什么最...
分类:
其他好文 时间:
2014-11-24 06:26:20
阅读次数:
165
这道题目很经典,具体如下:已知遍历结果如下,试画出对应的二叉树:前序:A B C E H F I J D G K中序:A H E C I F J B D K G解题要点:1、前序、中序、后序——都针对中间那个节点而言(根节点也是中间的节点)。前序,指先遍历中间节点,然后左,然后右。中序,指左——中—...
分类:
Web程序 时间:
2014-11-17 00:25:39
阅读次数:
276
题意:
给定n,
下面是1-n的排列。
下面一个二进制子串。
先按给定的排列建出二叉树。
然后遍历树(根->左子树->根->右子树->根)
遍历这个节点时 若权值为奇数入栈一个1,若为偶数入栈一个0
得到一个母串。
问母串中出现了几次子串。
思路:
先是建树得到母串,然后求子串个数就是裸的KMP。
建树就是找个规律,然后用线段树维护一下输入的排列
#include
#...
分类:
其他好文 时间:
2014-11-09 15:18:00
阅读次数:
258
路径长度:从树的一个结点到另一个结点之间边的条数。
树的路径长度:从树根到每个叶子结点之间路径长度之和。
带权树的路径长度:每个叶子结点带有权值,树根到叶子结点的路径长度乘以该叶子结点的权值之和。
哈弗曼树:带权树的路径长度最小的树,又称作最小二叉树和最优二叉树。
哈夫曼树的构造过程:...
分类:
其他好文 时间:
2014-10-30 13:40:18
阅读次数:
140
题目链接:https://vijos.org/p/1100题目大意:NOIP著名的加分二叉树。给出一棵树的中序遍历,加分规则左子树*右子树+根。空子树分数为1。问最大加分的树结构,输出树结构的先序遍历。解题思路:先从小的问题看起。对于一棵子树,只要知道根是啥,就能轻松求出这棵子树的加分情况。那么就变...
分类:
其他好文 时间:
2014-10-24 18:49:15
阅读次数:
170
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值
考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。
每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可
可以用启发式合并的Treap,也可以用可并堆
今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些 ...
二叉树的前序遍历顺序是:根节点,左树,右树中序遍历顺序是:左树,根节点,右树后序遍历顺序是:左树,右树,根节点上面这棵树的前序遍历是:abfcjm中序遍历是:fbcamj后序遍历是:fcbmja根据前序遍历和后序遍历是不能求出树的唯一结构的,已知的两种遍历顺序必须必须包括中..
分类:
其他好文 时间:
2014-10-22 16:09:31
阅读次数:
150
已经实现的操作有:
A. 根据二叉树的广义表表达式来创建二叉树(含表达式合法性检测);
B. 根据二叉树的前序和中序遍历列表来创建二叉树;
C. 根据二叉树的中序和后序遍历列表来创建二叉树;
...
分类:
编程语言 时间:
2014-10-20 20:47:47
阅读次数:
286
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1561题目大意:从树根开始取点。最多取m个点,问最大价值。解题思路:cost=1的树形背包。有个虚根0,取这个虚根也要cost,所以最后的结果是dp[0][m+1]。本题是cost=1的特殊背包问题,在两...
分类:
其他好文 时间:
2014-10-19 15:25:27
阅读次数:
197
题意:
一棵树 支持合并、分离、路径加权值、路径权值最大值
思路:
LCT入门题 也是我的第一道… 代码来源于kuangbin巨巨 我只是整理出自己的风格留作模版…
LCT比较好的入门资料是——《QTREE解法的一些研究》
LCT基本做法就是先dfs建树 然后根据输入做上述4个操作
对于合并 就是把u转到树根 然后接在v上
对于分离 就是把u转到splay的根 ...
分类:
其他好文 时间:
2014-10-17 18:51:09
阅读次数:
183