找书中权值和最大的路径,至少包含一个点。有点类似LCA(最近公共祖先),树的问题关键是如何划分子问题,然后递归求解。想到了可以返回两种结果,一个是单独路径的最大和,一种是子树的最大和,然后在求解的过程中不断的更新答案。 1 /** 2 * Definition for binary tree 3 ....
分类:
其他好文 时间:
2014-07-06 14:16:47
阅读次数:
187
管道是最早的Unix进程间通信形式,它存在于所有的Unix实现中。关于管道,有如下几点需要知道:
1、它是半双工的,即数据只能在一个方向上流动。尽管在某些Unix实现中管道可以是全双工的,但需要对系统进行某些设置。在Linux系统中,它是半双工的。
2、它没有名字,因此只能在具有公共祖先的进程之间使用。通常用在父子进程间。尽管这一点随着“有名管道FIFO”的加入得到改正了,但应该把它们看作是两...
分类:
其他好文 时间:
2014-07-03 15:50:50
阅读次数:
222
转载请注明出处:http://blog.csdn.net/ns_code/article/details/28113959 剑指offer上的最后一题了,一个递归函数调了一下午,才得到正确的结果。题目描写叙述:给定一棵树,同一时候给出树中的两个结点,求它们的最低公共祖先。输入:输入可能包括多个測试....
分类:
其他好文 时间:
2014-07-02 18:31:14
阅读次数:
229
题目链接:http://poj.org/problem?id=1470...
分类:
其他好文 时间:
2014-06-28 07:39:22
阅读次数:
208
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1977题意:求一棵树的严格次小生成树,即权值严格大于最小生成树且权值最小的生成树。思路:若现在已经得到了最小生成树,那么若 添加一条边E,就会得到一个环,我们只需要去掉环上权值小于E且最大的...
分类:
其他好文 时间:
2014-06-23 07:30:14
阅读次数:
202
情形1:树是搜索二叉树
思路:从树的根节点开始遍历,如果根节点的值大于其中一个节点,小于另外一个节点,则根节点就是最低公共祖先。否则如果根节点的值小于两个节点的值,则递归求根节点的右子树,如果大于两个节点的值则递归求根的左子树。如果根节点正好是其中的一个节点,那么说明这两个节点在一条路径上,所以最低公共祖先则是根节点的父节点
public static BinaryTreeNode get...
分类:
其他好文 时间:
2014-06-16 19:02:59
阅读次数:
394
首先将原图中的连通分量缩点,一定可以将原图缩成一棵树的形式,然后统计这棵树的叶子节点个数,答案就是(leaf+1)/2。这里不再证明,可以画个图看一下。(简单说明一下,首先把两个最近公共祖先最远的两个叶节点之间连接一条边,这样可以把这两个点到祖先的路径上所有点收缩到一起,因为一个形成的环一定是双连通...
分类:
其他好文 时间:
2014-06-15 11:33:53
阅读次数:
247
一、基本概念:1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。3.点连通度:最小割点集合中的顶点数。4.割边(桥):删掉它之后,图...
分类:
其他好文 时间:
2014-06-09 15:43:52
阅读次数:
344
一棵普通树,树中的结点没有指向父节点的指针,求一棵普通树的两个结点的最低公共祖先。代码如下,我太懒没有加注释,大家自己看吧! 1 #include 2
#include 3 #include 4 using namespace std; 5 6 struct TreeNode /...
分类:
其他好文 时间:
2014-05-31 08:08:32
阅读次数:
262
题意:n个点,n-1条边构成无向树,每个节点有权,Q次询问,每次或问从a->b的最短路中,权第k大的值,/或者更新节点a的权,
思路:在线LCA,先dfs生成树0,标记出层数和fa[](每个节点的父亲节点)。在对每次询问,走一遍一次公共祖先路上
的权,保持,快排。n*logn*q
#include //187MS
#include
#include
#include
using ...
分类:
其他好文 时间:
2014-05-15 23:36:52
阅读次数:
419