传送门 求对于每个点删掉1到他的最短路上的最后一条边(就是这条路径上与他自己相连的那条边)后1到他的最短路的长度。 即:最短路径树:图中的源点到所有结点的最短路径构成的树。 最短路径树在dijkstra过程中就可以求出来,因为这个过程就相当于走一棵树。 然后就是选入杂边,对于一条杂边<u,v>,它加 ...
分类:
其他好文 时间:
2019-08-21 11:50:21
阅读次数:
68
(点击此处查看原题) 题目分析 题意:在一个树中,有n个结点,记为 1~n ,其中根结点编号为1,每个结点都有一个值val[i],问从根结点到各个结点的路径中所有结点的值的gcd(最大公约数)最大是多少,其中,我们可以将路径中某一个结点的值变为0,也可以选择不变。 思路:注意到对于每个结点,我们可以 ...
分类:
其他好文 时间:
2019-08-20 12:24:18
阅读次数:
59
【题目链接】: https://loj.ac/problem/10056 【题意】 请输出树上两个点的异或路径 的最大值。 【题解】 这个题目,y总说过怎么做之后,简直就是醍醐灌顶了。 我们知道Xor路径,我们从根结点处理所有结点的 到根结点的异或和,我们想要两个点的异或路径。 其实就是利用根结点 ...
分类:
其他好文 时间:
2019-08-17 00:54:32
阅读次数:
70
一、堆的性质 结构性:用数组表示的完全二叉树 有序性:任意一结点的关键字是其子树所有结点的最大值(或最小值) 二、最大堆的操作 1、创建一个空的最大堆,堆从下标为1的地方开始存放(根结点下标为1) 2、最大堆的插入 首先,把要插入的结点放在数组的末尾,假设下标为H->size + 1 再将它与父结点 ...
分类:
其他好文 时间:
2019-08-14 21:41:50
阅读次数:
87
第39课 - 二叉树课后练习 1. 输的相等比较(去世科技笔试题) 编写一个函数用于比较两棵二叉树是否相等。(二叉树相等指的是两棵树中的结点在位置上相互对应,且对应位置上保存的数据相同。) 函数原型如下: int compare_bin_tree(RTreeNode* bt1, BTreeNode* ...
分类:
其他好文 时间:
2019-08-11 19:00:00
阅读次数:
79
第36课 - 遍历二叉树 1. 什么是遍历 单链表的遍历是指从第一个节点开始(下标为0的结点),按照某种次序一次访问每一个结点。 二叉树的遍历是指从根节点开始,按照某种次序一次访问二叉树中的所有结点。 2. 前序遍历 若二叉树为空:空操作返回。 若二叉树不为空:访问根节点中的数据,前序遍历左子树,前 ...
分类:
其他好文 时间:
2019-08-11 18:56:40
阅读次数:
96
Treap 普通二叉搜索树(BST) 对于任一棵子树,根节点权值大于左子树所有结点的权值,小于右子树所有结点权值 1. 结点结构体&初始化函数 3. 右旋 4. 左旋 5. 插入 与BST大致相同,只是在把val插入到左子树或右子树时,要根据dat来维护Treap,即通过左旋或右旋调整使得堆性质成立 ...
分类:
其他好文 时间:
2019-08-08 20:59:36
阅读次数:
91
每个结点最多两个子树,及每个结点的度不能大于2; 有序树,左右子树不可交换。 即使某个结点只有一个子树,也要确定时左子树还是有子树; 二叉树的五种形态: 1)空二叉树 2)只有一个跟结点 3)只有左结点 4)只有右结点 5)左右都有 二叉树性质: 1)二叉树的第i层至多有2^(i-1)个结点; 2) ...
分类:
其他好文 时间:
2019-07-27 13:11:31
阅读次数:
112
树的性质 1. 树中的 结点数 = 所有结点的 度数 + 1 2. 度为 m 的树中第 i 层上 至多 有 $m^{i 1}$ 个结点(i =1) 3. 高度为 h 的 m 叉树 至多 有 $(m^h 1)/(m 1)$ 个结点(推导公式S=$m^{h 1}+m^{h 2}+m^{h 3}+...+ ...
分类:
其他好文 时间:
2019-07-25 00:57:18
阅读次数:
151
满二叉树:深度为k,有2^k-1个结点的二叉树。 完全二叉树:具有n个结点,深度为k,所有结点对应于深度为k的满二叉树中编号为1-n的结点。 在二叉树的第i层最多有2^(i-1)个结点 深度为k的二叉树最多有2^k - 1个结点 左结点2i ,右节点2i+1.(完全二叉树) 具有n个结点的完全二叉树 ...
分类:
其他好文 时间:
2019-06-28 22:47:19
阅读次数:
138