码迷,mamicode.com
首页 >  
搜索关键字:祖先    ( 1773个结果
poj 1611 The Suspects
一道比最基础的并查集有优化的题; l         并查集的优化 1、Find_Set(x)时 路径压缩 寻找祖先时我们一般采用递归查找,但是当元素很多亦或是整棵树变为一条链时,每次Find_Set(x)都是O(n)的复杂度,有没有办法减小这个复杂度呢? 答案是肯定的,这就是路径压缩,即当我们经过"递推"找到祖先节点后,"回溯"的时候顺便将它的子孙节点都直接指向祖先,这样以后...
分类:其他好文   时间:2014-07-14 18:30:13    阅读次数:233
【剑指offer】q50:树中结点的最近祖先
#@ root: the root of searched tree #@ nodeToFind: the tree-node to be found #@ path: the path from root to node #@@ #@@ search tree referenced by root, and return the path #@@ from root to node, if n...
分类:其他好文   时间:2014-07-14 16:45:51    阅读次数:217
POJ 1986 Distance Queries LCA树上两点的距离
题目来源:POJ 1986 Distance Queries 题意:给你一颗树 q次询问 每次询问你两点之间的距离 思路:对于2点 u v dis(u,v) = dis(root,u) + dis(root,v) - 2*dis(roor,LCA(u,v)) 求最近公共祖先和dis数组 #include #include #include using namespace std; co...
分类:其他好文   时间:2014-07-10 23:50:17    阅读次数:326
并查集 Union-Find
并查集能做什么? 1.连接两个对象; 2.查询两个对象是否在一个集合中,或者说两个对象是否是连接在一起的。 并查集有什么应用? 1. Percolation问题、 2. 无向图连通子图个数 3. 最近公共祖先问题 4. Kruskal最小生成树 5. 社交网络 等等 并查集数据结构: 并查集是一种树...
分类:其他好文   时间:2014-07-09 14:13:20    阅读次数:214
最近公共祖先模版
LCA tarjan 的离线算法 #include #include #include using namespace std; const int maxn = 40010; int first[maxn], head[maxn], cnt, sum; struct edge { int u, v, w, next; }e[maxn*2], qe[maxn], Q[maxn]; int...
分类:其他好文   时间:2014-07-09 10:23:35    阅读次数:256
回溯:思想,思考
回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。 回溯法:为了避免生成那些不可能产生最佳解的问题状态,要不断地利用限界函数(bounding function)来处死那些实际上不可能产生所需解的活结点...
分类:其他好文   时间:2014-07-08 16:53:41    阅读次数:256
[Leetcode][Tree][Binary Tree Maximum Path Sum]
找书中权值和最大的路径,至少包含一个点。有点类似LCA(最近公共祖先),树的问题关键是如何划分子问题,然后递归求解。想到了可以返回两种结果,一个是单独路径的最大和,一种是子树的最大和,然后在求解的过程中不断的更新答案。 1 /** 2 * Definition for binary tree 3 ....
分类:其他好文   时间:2014-07-06 14:16:47    阅读次数:187
Js冒泡事件和捕获事件
js中冒泡事件和捕获事件:冒泡事件:冒泡事件是从里向外,即是从被绑定元素开始一直向外到达页面的所有祖先元素都会被触发,这 一过程被称为事件冒泡。这个事件从原始元素开始一直冒泡到DOM树的最上层捕获事件:捕获事件是从页面的最上层到被绑定元素都会触发。IE只支持事件冒泡,不支持事件捕获冒泡事件和捕获事件...
分类:Web程序   时间:2014-07-05 18:06:39    阅读次数:202
求二叉树的给定两个结点之间的距离
给定一颗二叉树,和两个给定的结点,求出这两个结点之间的距离拿到题目时不要认为是求出二叉树的结点之间的最大距离,题目是求两个结点的之间的距离题目有几种情况两个结点分布在根节点的左子树或者右子树一个结点分布在根节点的左子树,一个结点分布在根节点的右子树这两个结点是兄弟结点一个结点是另外结点的祖先结点本题...
分类:其他好文   时间:2014-07-03 22:40:55    阅读次数:229
【UNIX网络编程】进程间通信之管道
管道是最早的Unix进程间通信形式,它存在于所有的Unix实现中。关于管道,有如下几点需要知道: 1、它是半双工的,即数据只能在一个方向上流动。尽管在某些Unix实现中管道可以是全双工的,但需要对系统进行某些设置。在Linux系统中,它是半双工的。 2、它没有名字,因此只能在具有公共祖先的进程之间使用。通常用在父子进程间。尽管这一点随着“有名管道FIFO”的加入得到改正了,但应该把它们看作是两...
分类:其他好文   时间:2014-07-03 15:50:50    阅读次数:222
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!