1、哈夫曼树的基本概念 哈夫曼(Huffman)树又称作最优二叉树,它是n个带权叶子结点构成的所有二叉树中,带权路径长度最小的二叉树。 “路径”就是从树中的一个结点到另一个结点之间的分支构成的部分,而分支的数目就是路径长度。 树的路径长度:就是从树根到每一结点的路径长度之和。 考虑带权的结点,结点的 ...
分类:
其他好文 时间:
2019-01-16 22:53:08
阅读次数:
244
CF 1099 D. Sum in the tree 题意:结点序号为 1~n 的一个有根树,根序号为1,每个点有一个权值 , 然后定义一 表示从根节点到 结点序号为 的结点的路途上所经过的结点的权值之和。 如图所示有: 而现在的情况是:所有的a我们都不知道,只知道部分的s,然后需要我们求出对a求和 ...
分类:
其他好文 时间:
2019-01-16 19:19:39
阅读次数:
196
[AGC017D]Game on Tree 题目大意: 一棵$n(n\le10^5)$个结点的树。A和B轮流进行游戏,A先手。每次删掉一棵子树,根结点不能删。最先不能操作的人输,问最后谁赢。 思路: 根据树上删边游戏的经典结论,根结点的sg值等于各子结点的sg值+1后的异或和。 源代码: cpp i ...
分类:
其他好文 时间:
2019-01-13 16:09:10
阅读次数:
161
$\color{ 0066ff}{ 题目描述 }$ 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 $\color{ 0066ff}{输入格式}$ 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N 1行每行包含两个正整数x、y,表示x结点和 ...
分类:
其他好文 时间:
2019-01-12 10:40:53
阅读次数:
197
树 在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个 结点,可以打多次标记。)2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结 ...
分类:
其他好文 时间:
2019-01-09 20:21:05
阅读次数:
181
堆(heap) 1. 堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 根节点最大的堆叫做最大堆、大根堆或大顶堆 根节点最小的堆叫做最小堆、小根堆或小顶堆 常见的堆还有二叉堆、斐波那契堆等。 2. 堆是在程序运行时 ...
分类:
其他好文 时间:
2019-01-03 22:41:04
阅读次数:
209
概述 表达式树的特点:叶节点是操作数,其他节点为操作符。由于一般的操作符都是二元的,所以表达式树一般都是二叉树。 根据后缀表达式"ab+cde+**"建立一颗树 文字描述: 如同后缀表达式求值一样,逐个读取后缀表达式的每一个符号,如果遇到操作数,建立一个节点把操作数的值加入这个节点,并把节点入栈;如 ...
分类:
编程语言 时间:
2019-01-02 10:48:06
阅读次数:
216
首先,让每一个叶节点做一次树根的话,每个路径一定至少有一次会变成直上直下的 于是对于每个叶节点作为根产生的20个trie树,把它们建到同一个广义SAM里 建法是对每个trie dfs去建,last就是父亲的那个节点;每次做一个新trie时,last给成root 然后答案就是每个节点表示的长度和 ...
分类:
其他好文 时间:
2019-01-01 18:52:58
阅读次数:
197
MinMax容斥将问题转化为求x到S中任意点的最小时间。 树形DP,直接求概率比较困难,考虑只求系数。最后由于x节点作为树根无父亲,所以求出的第二个系数就是答案。 https://blog.csdn.net/dearbaba_8520/article/details/80556499 $O((n+q ...
分类:
其他好文 时间:
2018-12-29 23:13:41
阅读次数:
154
从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 3 / \ 9 20 / \ 15 ...
分类:
其他好文 时间:
2018-12-23 11:27:46
阅读次数:
262