码迷,mamicode.com
首页 >  
搜索关键字:tarjan    ( 1608个结果
HDU ACM 2586 How far away ?LCA->并查集+Tarjan(离线)算法
题意:一个村子有n个房子,他们用n-1条路连接起来,每两个房子之间的距离为w。有m次询问,每次询问房子a,b之间的距离是多少。分析:近期公共祖先问题,建一棵树,求出每一点i到树根的距离d[i],每次询问a。b之间的距离=d[a]+d[b]-2*d[LCA(a,b)];LCA(a,b)是a,b的近期公...
分类:编程语言   时间:2015-12-22 13:06:25    阅读次数:200
CCF 认证4
题意:求强联通分量Tarjan算法 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define clc(a,b) memset(a,b,sizeof(a))10 t...
分类:其他好文   时间:2015-12-19 23:14:00    阅读次数:281
tarjan强连通图分量
[有向图强连通分量] 有向图强连通分量的Tarjan算法在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connecte....
分类:其他好文   时间:2015-12-12 23:15:08    阅读次数:545
BZOJ 1179 [Apio2009]Atm
第一眼看到题目被吓傻。。maya有向图上单源最长路。。?后来仔细理解题意发现。。抢了一个ATM中的现金后这个ATM中就没有现金了。。然后我们可以想到,可以在某个强联通分量中不断绕圈抢劫!直到所有的现金全部被抢完。。毫不犹豫打个Tarjan缩点上去,每个点的点权是该点对应的强连通分量中所有点的点权(A...
分类:Windows程序   时间:2015-12-11 23:55:56    阅读次数:258
BZOJ 2208 [Jsoi2010]连通数
题意:给定一个有向图,求出该有向图中有多少个点对,使x可以达到y。(x和y相等的情况也算)首先,很显然,若a和b两个点在同一个强连通分量中,那么一定满足:(1)a和b互相可达(2)a能达到的点数和b能达到的点数相等那么二话不说肯定是用tarjan缩点啦~点权自然是对应强连通分量的点个数然后缩完点之后...
分类:Web程序   时间:2015-12-06 20:58:27    阅读次数:325
HDU - 1269 迷宫城堡(有向图的强连通分量)
d.看一个图是不是强连通图s.求出强连通分量,看看有没有一个强连通分量包含所有点。c.Tarjan/*Tarjan算法复杂度O(N+M)*/#include#include#includeusing namespace std;const int MAXN=10010;//点数const int M...
分类:其他好文   时间:2015-12-04 20:22:02    阅读次数:132
有向图的强连通分量模板
1、Tarjan/*Tarjan算法复杂度O(N+M)*/#include#include#includeusing namespace std;const int MAXN=20010;//点数const int MAXM=50010;//边数struct Edge{ int to,next...
分类:其他好文   时间:2015-11-28 19:52:31    阅读次数:201
有向图强连通分量的Tarjan算法(转)
原文地址:有向图强连通分量的Tarjan算法[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly conne...
分类:编程语言   时间:2015-11-28 18:13:58    阅读次数:309
POJ - 1986 Distance Queries(离线Tarjan算法)
1、一颗树中,给出a,b,求最近的距离。(我没考虑不联通的情况,即不是一颗树的情况)2、用最近公共祖先来求,记下根结点到任意一点的距离dis[],这样ans = dis[u] + dis[v] - 2 * dis[lca(u, v)]3、/*离线算法,LCATarjan复杂度O(n+Q);*/#in...
分类:编程语言   时间:2015-11-14 01:04:19    阅读次数:269
HDU - 2586 How far away ?(离线Tarjan算法)
1、给定一棵树,每条边都有一定的权值,q次询问,每次询问某两点间的距离。2、这样就可以用LCA来解,首先找到u, v 两点的lca,然后计算一下距离值就可以了。这里的计算方法是,记下根结点到任意一点的距离dis[],这样ans = dis[u] + dis[v] - 2 * dis[lca(u, v...
分类:编程语言   时间:2015-11-14 01:00:37    阅读次数:280
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!