题目描述 哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。 输入描述: 输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000 ...
分类:
其他好文 时间:
2018-01-10 21:36:43
阅读次数:
161
外层是借鉴了kd-tree的替罪羊里层是线段树,插入就是正常插入+拍扁重建,查询的时候,我们就像树状数组套线段树一样操作在替罪羊中找到的线段树根节点,但是对于在kd-tree查找过程中遇到的单点,我们并不能将其插入到额外的线段树中,因为你想我们的单点个数是n^1.5级别的,而我们还要乘上一个大到30 ...
分类:
其他好文 时间:
2018-01-02 23:35:36
阅读次数:
183
"题面传送门~~我太懒了所以吃掉题面~~" 题解 可以发现如果两点不在一条链上的话,那么他们的最短路径一定会经过LCA。 所以可以维护一下每个点到树根的距离,然后大力前缀和乱搞就好了。 cpp include const int max_n=1e4+5; int N,M,cnt; int depth ...
分类:
其他好文 时间:
2018-01-01 16:53:08
阅读次数:
122
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。 接下来M行 ...
分类:
其他好文 时间:
2017-12-24 11:24:11
阅读次数:
180
Description 给出一棵二叉树,求它的层次遍历结果。 [二叉树的遍历问题是一种精神,务必领会] Input Format 第一行,N<1000000,表示二叉树节点数。 默认序号为0的节点为树根。接下来共N-1行,依次表示序号为1,...,N-1的节点的父亲节点序号。 如果一个节点有两个孩子 ...
分类:
其他好文 时间:
2017-12-16 16:03:24
阅读次数:
132
原创:转载请注明出处 目的:想用java实现二叉树排序算法 思想:利用java中面向对象的思想,即: Tree:类 树根Tree:root //static所属于每一个Tree 左节点Tree:leftSon 右节点Tree:rightSon 父亲节点Tree:father 上代码 Tree类: 测 ...
分类:
编程语言 时间:
2017-12-16 14:52:42
阅读次数:
170
什么是哈夫曼树 给定n个权值作为n个叶子结点,构造一棵二叉树,带权路径长度达到最小。带权路径长度最短的树,权值较大的结点离根较近 构造的方法 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; 我的结果 错误原因 构造过程没问题,只是 ...
分类:
其他好文 时间:
2017-12-13 17:15:27
阅读次数:
126
1、树的相关定义 (1)树:包含n(n>0)个节点的有穷集合,其中每个元素称为节点(node);有一个特定的节点被称为根节点或树根(root);除根节点之外的其余数据元素被分为m(m≥0)个互不相交的结合T1,T2,……Tm-1,而其中每一个集合Ti(1<=i<=m)本身也是一棵树,被称作原树的子树 ...
分类:
其他好文 时间:
2017-12-08 01:28:22
阅读次数:
136
【1】赫夫曼树基本概念 别名“最优树”,是一种带权路径最短的树。 (1)路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 (2)路径长度:路径上的分支数目。 (3)树的路径长度:从树根到一每结点的路径长度之和。 (4)结点的带权路径长度:从该结点到树根之间的路径长度与结点上权值的 ...
分类:
其他好文 时间:
2017-12-05 13:16:05
阅读次数:
108
课堂笔记 索引:(Index)是一种线索性指引,它是关键字和相应的物理地址之间的一种逻辑清单。 索引的逻辑特征 数据逻辑结构包括集合,线性结构,树形结构和图形结构 线性索引技术 线性索引技术包括稠密索引,分块索引,多重表和倒排表 静态索引和动态索引的区别 静态索引:插入删除复杂度高,使用内容基本不变 ...
分类:
其他好文 时间:
2017-12-01 13:42:34
阅读次数:
185