#include<iostream>#include<vector>#include<algorithm>#include<stdint.h>using namespace std;#include<list>#include<map>#include<queue> struct TreeNode ...
分类:
其他好文 时间:
2016-07-05 13:44:46
阅读次数:
136
点击打开链接
题意:给一个无向图,然后有Q次询问U V,问的是U到V的所有路径中的最小值最大
思路:U到V的路径最小值最大,则这条边肯定是最小生成树上的边,那么我们可以先将所有的最小生成树上的边全都找出来,然后现在是一个树,然后跑一边LCA,对于现在询问的U到V,只要找到它们的最近公共祖先,然后两个点向上找到它,比较路径中的最大值即可 PS:这么暴力找跑得有点慢#include
#incl...
分类:
其他好文 时间:
2016-06-29 11:25:28
阅读次数:
126
剑指offer第五十题:树中两个结点的最低公共祖先:这里的树是普通树,且没有指向父结点的指针。 ...
分类:
其他好文 时间:
2016-06-28 20:36:11
阅读次数:
253
题目链接:http://poj.org/problem?id=1330 解题报告: 先将一个子节点,深搜每一个根节点,并标记。 然后深索另一个子节点,当发现访问过了,就找到了最近的公共祖先。 ...
分类:
其他好文 时间:
2016-06-20 20:37:32
阅读次数:
125
将二叉查找树变为有序的双向链表(不能创建新节点,只调整指针) 递归 非递归 判断二叉树是不是平衡二叉树 递归 二叉树中两个节点的最低公共祖先节点 递归 非递归 ...
分类:
其他好文 时间:
2016-06-10 16:17:49
阅读次数:
168
#pragmaonce
#include<iostream>
usingnamespacestd;
/****************
*二叉树中找两个结点的最近的公共祖先结点
******************/
structNode
{
Node*left;
Node*right;
intvalue;
Node(intv)
:value(v)
,left(NULL)
,right(NULL)
{}
};//方法一intcount计数int..
分类:
其他好文 时间:
2016-06-09 16:05:29
阅读次数:
200
LCA(Least Common Ancestors)问题是指给定一棵树T和两个节点u和v,找出u和v的离根节点最远的公共祖先。 比如说对于下面这棵树,7和10的最近公共祖先是1,7和8的最近公共祖先是5。
可以先想到一个简单的解法。将一个人的祖先全都标记出来,然后顺着另一个的父亲一直向上找,直到找到第一个被标记过的结点,便是它们的最近公共祖先结点了。
以hihoCoder1062为例给出...
分类:
其他好文 时间:
2016-06-02 14:08:08
阅读次数:
204
这个题目网上有很多答案,代码也很像,不排除我的。大家的思路应该都是taijan求出割边,然后找两个点的LCA(最近公共祖先),这两个点和LCA以及其他点构成了一个环,我们判断这个环上的割边有几条,我们的答案就少几个。 有人问,这个题重边怎么办呢,重边肯定不是桥啊。额……对于这个我只能说,这个题的原始 ...
分类:
编程语言 时间:
2016-05-31 22:10:09
阅读次数:
196
题目 给出一棵家族树,树上的节点可以由名字唯一标识。给出若干个查询,查询的内容为两个名字,结果为两个名字的最近公共祖先。 题目链接: 最近公共祖先 分析 在线的RMQ + LCA 算法,先用dfs将树遍历一遍,每次到达一个节点(无论是从父节点到达还是从它的某个子节点返回),都记录下来该节点id,同时 ...
分类:
其他好文 时间:
2016-05-30 22:54:15
阅读次数:
203