树的定义:n个节点组成的有限集合。n=0,空树;n>0,1个根节点,m个互不相交的有限集,每个子集为根的子树。 1、基本术语: 节点的度:树中某个节点的子树的个数。 树的度:树中各节点的度的最大值。 分支节点:度不为零的节点。 叶子节点:度为零的节点。 路径:i->j;路径长度:路径经过节点数目减1 ...
分类:
其他好文 时间:
2018-02-10 13:59:47
阅读次数:
172
洛谷 P3380 【模板】二逼平衡树(树套树) 线段树套treap: 就是线段树每个节点放一个treap。建树复杂度应该是$n log n$,操作1,3,4,5的复杂度是$(log n)^2$,操作2的复杂度是$(log n)^3$。 操作3:找到线段树的对应叶子节点后找到要删除的值,在回溯的时候更 ...
分类:
其他好文 时间:
2018-02-10 00:02:05
阅读次数:
191
给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 构造 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) ...
分类:
编程语言 时间:
2018-02-09 17:23:57
阅读次数:
247
"题目链接" $Description$ 一棵n个点的树,每次可以选择树上两个叶子节点并删去一个,得到的价值为两点间的距离 删n 1次,问如何能使最后得到的价值最大,并输出方案 $Solution$ 树上距离,求最大,可以考虑下树的直径 假如已知树的直径u v,那么任意一点x到达其他点的最远距离就是 ...
分类:
其他好文 时间:
2018-02-07 16:54:28
阅读次数:
129
风在追求叶子,承诺要带着叶子去看外面的精彩世界。 叶子犹豫不决,征求树的意见。 树说: 你若不离,我便不弃。 终有一天,叶子被风打动,于是选择随风漂泊。 离开的那一刻,它问树:你为什么不挽留我? 树说:世界上不只有你一片叶子; 它问风:你为什么要追求我? 风真诚的回答:因为世界上没有相同的两片叶子。 ...
分类:
其他好文 时间:
2018-02-06 13:01:54
阅读次数:
173
orz "TPLY" 巨佬,题解讲的挺好的。 这里重点梳理一下思路,做一个小小的补充吧。 写可持久化线段树,叶子节点维护每个位置的fa,利用每次只更新一个节点的特性,每次插入$logN$个节点,这一部分思路还是很轻松。关于此部分的其它问题可以参考下我的 "可持久化线段树总结" 一开始,写惯了常规并查 ...
分类:
其他好文 时间:
2018-02-06 01:11:59
阅读次数:
206
一.前言 前面我们已经知道线段树能够进行单点修改和区间查询操作( "基本线段树" )。那么如果需要修改的是一个区间该怎么办呢?如果是暴力修改到叶子节点,复杂度即为$O(nlog_n)$,显然是十分不优秀的。那么我们能不能向区间查询一样把复杂度降到$O(log_n)$呢? 二.算法流程 线段树肯定是兹 ...
分类:
编程语言 时间:
2018-02-05 00:29:35
阅读次数:
220
初始化堆的时候是对所有的非叶子结点进行筛选。 最后一个非终端元素的下标是[n/2]向下取整,所以筛选只需要从第[n/2]向下取整个元素开始,从后往前进行调整。 比如,给定一个数组,首先根据该数组元素构造一个完全二叉树。 然后从最后一个非叶子结点开始,每次都是从父结点、左孩子、右孩子中进行比较交换,交 ...
分类:
编程语言 时间:
2018-02-04 15:36:52
阅读次数:
177
哈夫曼树又称最优二叉树,非叶子结点有且仅有两个子结点,哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 构造:自下而上 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林( ...
分类:
其他好文 时间:
2018-02-03 18:57:27
阅读次数:
165
题目链接:Weak Pair 题意: 给出一颗有根树,如果有一对u,v,如果满足u是v的父节点且vec[u]×vec[v]<=k,则称这对结点是虚弱的,问这棵树中有几对虚弱的结点。 题解: 刚开始看到这题,无脑暴力dfs从叶子结点向上递归,TLE了一发神清气爽@。@!所以用树状数组优化dfs,从根节 ...
分类:
编程语言 时间:
2018-02-03 16:05:38
阅读次数:
165