线段树不是完全二叉树,是平衡二叉树 堆也是平衡二叉树 堆满二叉树: h层,一共有2^h-1个节点(大约是2^h) 最后一层(h-1层)有2^(h-1)个节点 最后一层的节点数大致等于前面所有层节点之和 如果区间有n个元素,数组表示需要4n的空间 不考虑添加元素,使用4n的静态空间即可 ...
分类:
编程语言 时间:
2019-04-16 21:41:08
阅读次数:
231
堆:是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。 性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 把堆当做数组存储,堆里的元素有上浮,下沉操作,(上浮,下沉 ...
分类:
其他好文 时间:
2019-03-31 12:18:26
阅读次数:
126
基本概念: 1、完全二叉树:若二叉树的深度为h,则除第h层外,其他层的结点全部达到最大值,且第h层的所有结点都集中在左子树。 2、满二叉树:满二叉树是一种特殊的的完全二叉树,所有层的结点都是最大值。 定义: 1、堆是一颗完全二叉树; 2、堆中的某个结点的值总是大于等于(最大堆)或小于等于(最小堆)其 ...
分类:
编程语言 时间:
2019-03-04 15:56:55
阅读次数:
213
二叉堆是一种特殊的堆,二叉堆就是一棵完全二叉树。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。 ...
分类:
其他好文 时间:
2019-02-05 14:27:16
阅读次数:
199
Description 给定 $n$ 个点,每个点有点权,连结两个点花费的代价为两点的点权和。另外有 $m$ 条特殊边,参数为 $x,y,z$。意为如果你选择这条边,就可以花费 $z$ 的代价将点 $x$ 和点 $y$ 连结起来,当然你也可以不选择这条边。求使整个图联通的最小代价 Input 第一行 ...
分类:
其他好文 时间:
2018-12-28 20:43:52
阅读次数:
237
参考:https://www.cnblogs.com/CQzhangyu/p/8632904.html 要开longlong的 首先看dp,设f[u]为必选u点的子树内最大联通块,p[u]为不一定选u的子树内最大联通块,转移很显然就是f[u]=max(Σf[v],0),p[u]=max(max(p[ ...
分类:
其他好文 时间:
2018-12-09 14:09:24
阅读次数:
234
堆优化的prim算法(跟dijkstra非常的像) kruskal 个人感觉kruskal比prim跟好写一点 ...
分类:
其他好文 时间:
2018-12-08 11:27:12
阅读次数:
122
题面 学习了如何在维护序列的平衡树上查找某个数:按初始的顺序定个权值,然后每次找那个权值的DFS序即可。具体实现就是不停往上跳,然后是父亲的右儿子就加上父亲的左儿子,剩下的就是继续熟悉无旋树堆 1 #include<cstdio> 2 #include<cstring> 3 #include<alg ...
分类:
其他好文 时间:
2018-11-16 21:33:26
阅读次数:
152
2017 2018 20172309 《程序设计与数据结构》第八周学习总结 一、教材学习内容总结 ~~相信其它很多同学都是以小顶堆来介绍这一章内容,所以我将以大顶堆来介绍这章内容。~~ 1.1 堆的简单介绍: 堆的定义:( 大顶堆 ) 堆实际上是一棵完全二叉树。 堆满足两个性质: 1. 堆的每一个父 ...
分类:
其他好文 时间:
2018-11-10 21:21:10
阅读次数:
195
Treap,又称树堆,是一种通过堆性质来维持BST平衡的数据结构。具体体现在对于树上每一个点来说,既有BST维护的值,又有一个堆维护的随机生成的值。维护平衡性的办法是 根据堆维护的值的相对大小关系进行左旋和右旋这两种操作,在旋转的前后,依然满足BST性质 。 代码如下 ...
分类:
其他好文 时间:
2018-11-10 17:56:55
阅读次数:
194