基本概念: 1、完全二叉树:若二叉树的深度为h,则除第h层外,其他层的结点全部达到最大值,且第h层的所有结点都集中在左子树。 2、满二叉树:满二叉树是一种特殊的的完全二叉树,所有层的结点都是最大值。 定义: 1、堆是一颗完全二叉树; 2、堆中的某个结点的值总是大于等于(最大堆)或小于等于(最小堆)其 ...
分类:
编程语言 时间:
2019-03-04 15:56:55
阅读次数:
213
概要: 1、Dijkstra算法用于解决单源最短路径问题,严格讲是无负权图的最短路径问题。 邻接矩阵版 邻接表版 若要求输出最短路径,以邻接矩阵为例: 另外还有一种情况,如果某个结点存在多个前驱结点,那上面这种pre数组的方法就不再适用,改成vector即可: 当访问的结点是路径起点st时(边界), ...
分类:
编程语言 时间:
2019-02-22 23:30:32
阅读次数:
207
题意: 输入一个n <=20 个结点的无向图以及某个结点k 按照字典序从小到大顺序输出从结点1到结点k的所有路径 要求结点不能重复经过 标准回溯法 要实现从小到大字典序 现在数组中排序好即可 标记数组一定要删去!!!!切记 又因为这个弄错了 提高效率的方法: 先遍历一遍所有点 把和k点相关的点存入数 ...
分类:
其他好文 时间:
2019-02-22 00:55:33
阅读次数:
169
问题 A: 【图】 [提交] [状态] [讨论版] [命题人:admin] 题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为l。如上图中, 若医院建在1 处 ...
分类:
其他好文 时间:
2019-02-10 20:43:31
阅读次数:
178
/*依赖背包的通常做法就是对于每个结点,先处理处其所有子节点的dp,然后对于当前结点进行分组背包dp即可 还是依赖背包问题,dp[i][j]表示结点i的子树用了j个机器人的搜索代价 边界条件,如果某个结点的子树用了0个机器人,那么搜索这个棵子树的代价是边权和*2 将每个结点子树中的机器人看做物品体积... ...
分类:
其他好文 时间:
2019-01-26 23:41:38
阅读次数:
190
树 在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个 结点,可以打多次标记。)2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结 ...
分类:
其他好文 时间:
2019-01-09 20:21:05
阅读次数:
181
题目链接 "https://codeforces.com/contest/1083" 题解 A. The Fair Nut and the Best Path 可以忽略掉“任意时刻油量非负”这一条件,直接在原树上找一条点权和减去边权和最大的路径。因为若一种方案包含了一段从起点出发,到某个结点时油量为 ...
分类:
其他好文 时间:
2019-01-02 23:26:35
阅读次数:
214
二叉堆可以被看作是一个数组,也可以简单的看作是一个近似的完全二叉树,二叉堆有最大堆和最小堆,分别具有堆的性质:最大堆的某个结点的值最多与其父结点一样大,最小堆则是某个结点的值最多与其父结点一样小。所以最大堆中最大的结点永远是根结点,最小堆中最小的结点永远是根节点。 既然二叉堆是一种数据结构,就有其支 ...
分类:
其他好文 时间:
2018-12-22 17:28:49
阅读次数:
187
题意与分析(Codeforces 431C) 题意是这样的:给出K Tree——一个无限增长的树,它的每个结点都恰有$K$个孩子,每个节点到它$K$个孩子的$K$条边的权重各为$1,2,...,K$,问现有多少条路径,使从根节点出发到某个结点所经过的边权重之和恰为n,且经过的边至少有一条权重不小于$ ...
分类:
其他好文 时间:
2018-12-01 13:05:50
阅读次数:
153
有环的定义:链表的尾结点指向了链表中的某个结点,如下图所示 判断是否有环,两种方法: 方法1:使用p、q两个指针,p总是向前走,但q每次都从头开始走,对于每个节点看p走的步数和q是否一样,如上图所示:当p从6走到3时,共走了6步,此时若q从出发,则q只需要走两步就到达3的位置,因而步数不相等,出现矛 ...
分类:
其他好文 时间:
2018-11-04 15:34:44
阅读次数:
151