不难知道: 1、LCA(a, b) 属于 [a, b] 2.、如果a, b的公共祖先是a||b,那么我们可以知道,先出现的结点一定在上面,后出现的结点一定在下面,初始序列中a,b先出现的那个就是公共祖先。 3、如果a, b的公共祖先是c, 那么我们只需要找序列中值位于a,b之间的第一次出现的元素即可 ...
分类:
其他好文 时间:
2019-07-31 13:00:55
阅读次数:
87
题目链接:https://www.luogu.org/problem/P3379 题目大意: 给一棵以s为根的无向树,回答m个询问,回答出a和b最近的公共祖先。 解题报告: 倍增LCA的模板题,用一个数组 f [i] [j]表示i结点的第$2^{j}$个祖先。显然,一个点的祖先是f[i][0],对于 ...
分类:
其他好文 时间:
2019-07-30 12:53:08
阅读次数:
69
leetcode 236 二叉树的最近公共祖先 参考: "负雪明烛" 题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点 ...
分类:
其他好文 时间:
2019-07-27 09:28:46
阅读次数:
91
leetcode 235 二叉搜索树最近公共祖先 题目描述: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的 ...
分类:
其他好文 时间:
2019-07-26 01:58:42
阅读次数:
118
题目链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/submissions/ 解题思路: 如果p和q都小于root,去左边找就行。 如果p和q在两侧的,直接就是root,这个可以通过 ...
分类:
其他好文 时间:
2019-07-24 20:57:30
阅读次数:
83
HDU-2586 How far away ? 题目大意:给你n个节点组成的树,树的每条边上都有一定的权值,问你树上两点之间的 距离是多少 具体思路:此题是在学习tarjan中找到的一道题,由于题目给出的是一个树,可以联想到 子节点与根节点之间的关系,我们可以通过dfs求出子节点与根节点之间的距离, ...
分类:
其他好文 时间:
2019-07-24 19:21:01
阅读次数:
73
```cpp 【题目描述】: 有根树在计算机科学工程领域是一个人人熟知的数据结构类型。下面是一个例子。 8 (1,4,5);1 (13,14);4 (6,10);5 (9);6 (7,15);10 (2,11,16);16 (3,12); 在这个图中,每个点都是由{1, 2,...,16}中的某个数 ...
分类:
其他好文 时间:
2019-07-23 15:12:17
阅读次数:
89
我昨天晚上一个题目都没有做。。所以只有以前的tarjan代码了。。 ...
分类:
其他好文 时间:
2019-07-23 13:38:22
阅读次数:
64
题目链接: https://www.acwing.com/problem/content/357/ 题意: 给出一个树上节点的集合,动态加入或者删除节点,询问连通所有节点的最小边集的权值之和。 解法: 把集合中的节点按照时间戳排序,每相邻两个节点距离以及首尾节点距离累加,累加之和为答案的两倍。(目前 ...
分类:
其他好文 时间:
2019-07-23 13:12:09
阅读次数:
114
【题目描述】: 有根树在计算机科学工程领域是一个人人熟知的数据结构类型。下面是一个例子。 8->(1,4,5);1->(13,14);4->(6,10);5->(9);6->(7,15);10->(2,11,16);16->(3,12); 在这个图中,每个点都是由{1, 2,...,16}中的某个数 ...
分类:
其他好文 时间:
2019-07-23 13:10:45
阅读次数:
98