码迷,mamicode.com
首页 >  
搜索关键字:tarjan算法    ( 359个结果
hicocoder1067 最近公共祖先·二(tarjan算法)
tarjan算法是处理最近公共祖先问题的一种离线算法。算法思路:先将所有的询问搜集起来。然后对树进行dfs,在dfs的过程中对节点进行着色。当到达某个节点x的时候,给x着色为灰色,离开x的时候,着色为黑色。当到达x并将其着色为灰色后,处理与x相关联的所有询问:(这里有一个显然的事实:所有的灰色节点都...
分类:编程语言   时间:2015-02-21 14:19:52    阅读次数:222
算法模板——Tarjan强连通分量
功能:输入一个N个点,M条单向边的有向图,求出此图全部的强连通分量原理:tarjan算法(百度百科传送门),大致思想是时间戳与最近可追溯点这个玩意不仅仅是求强连通分量那么简单,而且对于一个有环的有向图可以有效的进行缩点(每个强连通分量缩成一个点),构成一个新的拓扑图(如BZOJ上Apio2009的那...
分类:编程语言   时间:2015-02-04 00:21:11    阅读次数:304
URAL 1471(lca tarjan算法)
题意:给定一棵树,查询时给定两个点,求出两个点的距离。 暴力做肯定超时的。我的做法是采用lca(最近公共祖先)的离线算法,即tarjan算法(据说Tarjan提出了很多算法,可能还有很多tarjan算法),算法里用到了并查集。在输入完所有查询之后,在求出答案。tarjan算法的做法是:一开始vis数组初始化为0,从树根开始递归往下对点进行染色,刚到一个点的时候将vis取为-1,在继续递归...
分类:编程语言   时间:2015-01-24 09:02:19    阅读次数:260
HDU 2242 连通分量缩点+树形dp
题目大意是:所有点在一个连通图上,希望去掉一条边得到两个连通图,且两个图上所有点的权值的差最小,如果没有割边,则输出impossible这道题需要先利用tarjan算法将在同一连通分量中的点缩成一个点后,重新构建一幅图,然后利用新建的图进行树形dp解决问题这道题目需要注意的是可能存在重边,那么子节点...
分类:其他好文   时间:2015-01-19 22:23:14    阅读次数:215
[图论] LCA(最近公共祖先)Tarjan 离线算法
很好的参考资料:http://taop.marchtea.com/04.04.html    下面的配图和部分文字转载于此文章 离线算法就是指统一输入后再统一输出,而不是边输入边实时输出。Tarjan算法的复杂度为O(N+Q),Q为询问的次数. 由于是离线算法,所以要保存输入的信息,次序问题。   若两个结点u、v分别分布于某节点t 的左右子树,那么此节点 t即为u和v的最近公共祖先。更进...
分类:编程语言   时间:2014-12-09 21:27:58    阅读次数:366
[图论] 有向图强连通分量 (kosaraju算法,Tarjan算法)
记录自己的想法:在有向图中,如果一些顶点中任意两个顶点都能互相到达(间接或直接),那么这些顶点就构成了一个强连通分量,如果一个顶点没有出度,即它不能到达其他任何顶点,那么该顶点自己就是一个强连通分量。在用kosaraju算法和Tarjan算法求强连通分量的时候,就是给所有的顶点分组染色,同一种颜色的顶点在同一个强连通分量中,记录有多少种颜色(有多少个强联通分量),每个顶点属于哪种颜色(每个顶点在哪...
分类:编程语言   时间:2014-12-09 10:38:36    阅读次数:286
[ACM] HDU 1269 迷宫城堡(Tarjan算法求强联通分量)
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8099    Accepted Submission(s): 3623 Problem Description   为了训练小希的方向感,Gardon建立了...
分类:移动开发   时间:2014-12-04 06:28:08    阅读次数:195
强连通分量
感觉挺有趣的,就谢了已发,其实就是判断这个有向图是否两两连通。。。。。 解释就是这个博客上的tarjan算法 我实现后代码如下。。。 #include #include #include #include #include using namespace std; #define N 10005 stacksta; vectormp[N]; int dfn[N]; int lo...
分类:其他好文   时间:2014-12-03 14:19:06    阅读次数:173
HDU 3746
烦。。早上在写HDU 4338,发现细节太多了,写不了。原因其实是自己对TARJAN算法忘得差不多了。唉。。把之前想的一道循环节的题过了吧。。。再练练Tarjan,把4338也过了,加油。。。#include #include #include using namespace std;char s[...
分类:其他好文   时间:2014-11-30 13:55:34    阅读次数:135
强联通块tarjan算法
http://poj.org/problem?id=1236第一问:需要几个学校存在软件,才能通过传递,使得所有的学校都有软件 用tarjan算法求出强联通分量后,将每个联通分量缩成一个点,那么问题1的答案就是入度为0的点的个数 为什么?入度为0的点,肯定不能通过其他学校传送软件给他,所以他必须存在...
分类:移动开发   时间:2014-11-21 09:04:11    阅读次数:145
359条   上一页 1 ... 30 31 32 33 34 ... 36 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!