Description 给定含 n 个结点、边带权的无根树,请回答下面的询问: 1 a b c d:询问路径a b是否是路径c d的子路径。 2 a b c d:询问路径a b和c d的最长公共路径长度。 Input 第一行包括两个正整数 n,m,表示树的节点数和询问数,树结点从1到n编号。 接下来 ...
分类:
其他好文 时间:
2019-08-27 22:48:50
阅读次数:
123
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0 ...
分类:
其他好文 时间:
2019-08-26 00:39:09
阅读次数:
63
今天刷的题是LeetCode236题,是给定一个二叉树,以及二叉树中的两个节点,然后找出两个节点的最近公共祖先 上一道题我自己的解法在这道题依旧适用,即找出两节点到根节点的路径,然后遍历。 我自己的解法,当时为了找到这条路径费了很多劲儿。这道题参考了哈LeetCode的官方解答思路,说可以用父指针的 ...
分类:
其他好文 时间:
2019-08-22 12:49:07
阅读次数:
77
j今天刷的题是LeetCode第235题。题目要求是:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先 即,对于有根树T的两个节点pq,最近公共祖先表示为一个节点x,满足pq是x的子节点且x的深度尽可能大 其中给定的二叉树,所有节点的值均不相同,并且pq为不同节点且在二叉树中 开始的时候,想 ...
分类:
其他好文 时间:
2019-08-20 22:32:55
阅读次数:
109
题目:POJ-1330 题目大意:给你一棵含有n个结点的树,n-1条边,问两个结点的最近公共祖先是哪个节点。 普通做法 思路:让两个结点到达同一深度,再一起往上走,到达同一结点即为最近公共祖先。 例:3和7,让3往上走到16,与7同一深度后,再一起一步步往上走,到达4时,为同一个结点,即为其最近公共 ...
分类:
编程语言 时间:
2019-08-17 21:42:00
阅读次数:
96
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1, ...
分类:
其他好文 时间:
2019-08-17 00:45:00
阅读次数:
85
概念: 双连通分量有点双连通分量和边双连通分量两种。若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图。 一个无向图中的每一个极大点(边)双连通子图称作此无向图的点(边)双连通分量。求双连通分量可用Tarjan算法。--百度百科 Tip:先学 ...
分类:
其他好文 时间:
2019-08-13 20:43:34
阅读次数:
77
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6, ...
分类:
编程语言 时间:
2019-08-07 22:58:48
阅读次数:
213
LCA倍增法 模板:luogo P3379 【模板】最近公共祖先(LCA) 今天讲的时候有点跑神,现在卑微地来补习(菜) LCA指的是最近公共祖先(Least Common Ancestors)。 最简单的算法无疑是从两个点一个个往上走,出现的第一个两个点都走过的点即为两点的LCA。 但是时间很长。 ...
分类:
其他好文 时间:
2019-07-31 23:38:45
阅读次数:
110
LCA(最近公共祖先) LCA,Lowest Common Ancetors,即最近公共祖先。 百度百科定义:“对于有根树T的两个结点u、v,最近公共祖先 表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。” 什么是LCA? 对于一些朋友来说百度百科式的介绍不是很友好,我们在这里形象实际地说明 ...
分类:
其他好文 时间:
2019-07-31 13:09:54
阅读次数:
61