一、堆 完全二叉树 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),是不稳定排序 堆排序中的堆有大顶堆、小顶堆两种。他们都是完全二叉树 将该堆按照排序放入列表 1. 大顶堆: 所有的父节点的值都比孩子节点大,叶子节点值最小。r ...
分类:
编程语言 时间:
2018-09-26 01:12:49
阅读次数:
245
可能算不上dp,大概是个树形模拟 先一遍dfs算出f[u]为每个点最深的叶子到u的距离,然后再dfs一下,ans加上f[u] f[e[i].to] e[i].va,f[u] f[e[i].to]是这条边应该的用时 cpp include include using namespace std; co ...
分类:
其他好文 时间:
2018-09-24 12:52:20
阅读次数:
167
2018-09-24 12:01:38 问题描述: 问题求解: 毫无疑问的一条非常好的题目,采用的解法是逆向的BFS,也就是从叶子节点开始遍历,逐步向中心靠拢,最终留下的叶子节点就是答案。 ...
分类:
其他好文 时间:
2018-09-24 12:45:20
阅读次数:
133
树的基本概念 度 结点的度 该结点子树的个数 树的度 该树中结点的最大度数 叶子结点(终端结点) 终端结点 高度/深度/层数 该树的行数 二叉树 满二叉树 完全二叉树 最多最下面两层上结点的度数最下一层上的结点都集中在该层左边的位置上 二叉树性质 第i层上的结点数目最多为2i 1 (i ≥ 1 ...
分类:
其他好文 时间:
2018-09-23 22:30:12
阅读次数:
225
问题描述: 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 方法:(整不明白什么时候是None) 2018-09-22 16:14:13(蒙蔽状态) ...
分类:
其他好文 时间:
2018-09-22 23:19:27
阅读次数:
169
给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根、内部结点和叶子均可)着以黑色或白色。你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含一个有色结点(哪怕是这个叶子本身)。 对于每个叶结点u,定义c[u]为从根结点从U的简单路径上最后一个有色结点的颜色。给出每 ...
分类:
其他好文 时间:
2018-09-22 21:26:43
阅读次数:
453
"传送门" 首先,所有军队又要尽量往上走,这样才能尽可能的封锁更多的到叶子的路径 而随着时间的增加,能封锁的路径也就越来越多,所以可以二分最终的时间 然后对于每个时间,就让能走到根的军队走到根,记录到根上一个节点和剩余时间,然后按时间排序;不能走到的就在能走到的最上面的点打标记.然后遍历树一遍,把所 ...
分类:
其他好文 时间:
2018-09-22 21:24:04
阅读次数:
159
"传送门" 一群蚂蚁能被吃,也就是走到指定边的两端点之一要走到另一端点时有$k$只,我们可以从这两端点逆推,记两个值为走到某个点时最后会被吃掉$k$只蚂蚁的蚂蚁数量范围,式子下面有,~~很好理解(雾)~~.最后在每个叶子节点二分查找有多少个数在区间内即可 cpp // luogu judger en ...
分类:
其他好文 时间:
2018-09-22 21:12:05
阅读次数:
137
题意翻译 你是一个程序猿,现在有一棵新年树(并不是传统的带着叶子的树)——它有四个节点: 1,2,3,4. 其中2,3,4的父亲都是1. 新年里,程序猿们往往会做一些有趣的事情。你则选择以往这棵树上加节点来取乐。 一个添加节点的操作是这样的: 1) 找到树上的一个叶子结点v 2) 设现在树上有n个节 ...
分类:
其他好文 时间:
2018-09-22 19:40:26
阅读次数:
695
题意:给定一棵$n$个点的树,将叶子节点分为数个集合使集合里点对最长距离不超过$k$,求最少集合数。($n\le1000000$) 首先我们可以想到,这道题并不是让你构造最优方案,因为只要把所有叶子节点的集合任意合并至无法操作,就一定是最优答案了 这个感性理解一下就是那么回事,我一开始做的时候就想到 ...
分类:
其他好文 时间:
2018-09-22 10:34:46
阅读次数:
145