迷宫城堡Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8487Accepted Submission(s): 3797Problem Descri...
分类:
编程语言 时间:
2015-03-18 15:20:00
阅读次数:
168
转自:https://www.byvoid.com/blog/scc-tarjan/網誌列表標籤項目關於聯繫四月142009作者:byvoid閱讀: 158882計算機科學圖論強連通分量Tarjan堆棧有向图强连通分量的Tarjan算法[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径...
分类:
编程语言 时间:
2015-03-18 10:32:16
阅读次数:
200
题目连接http://hihocoder.com/problemset/problem/1067题目大意就是一棵树求任意两个节点的最近公共祖先。算法描述在题目的提示里面有比较详细的解释。这里就不多说了。这种算法的时间复杂度是O(n+q)。
在算法的实现上也有一些技巧,在参考了一些代码后写了一个比较精简的Trajan_LAC算法。#include
using name...
分类:
其他好文 时间:
2015-03-09 14:30:48
阅读次数:
132
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=737
/***
Uva 796 求桥
题目要求:输出题目中所有的桥,按其所连接的点从小到大的顺序输出
解题思路:tarjan算法,所有树枝边都是桥(dfn[u]<low[v]),利用vector存储一下就可...
分类:
其他好文 时间:
2015-02-27 18:24:57
阅读次数:
122
HDU 2586 How far away ? (离线LCA Tarjan算法模板)...
分类:
编程语言 时间:
2015-02-25 22:26:58
阅读次数:
206
tarjan算法是处理最近公共祖先问题的一种离线算法。算法思路:先将所有的询问搜集起来。然后对树进行dfs,在dfs的过程中对节点进行着色。当到达某个节点x的时候,给x着色为灰色,离开x的时候,着色为黑色。当到达x并将其着色为灰色后,处理与x相关联的所有询问:(这里有一个显然的事实:所有的灰色节点都...
分类:
编程语言 时间:
2015-02-21 14:19:52
阅读次数:
222
功能:输入一个N个点,M条单向边的有向图,求出此图全部的强连通分量原理:tarjan算法(百度百科传送门),大致思想是时间戳与最近可追溯点这个玩意不仅仅是求强连通分量那么简单,而且对于一个有环的有向图可以有效的进行缩点(每个强连通分量缩成一个点),构成一个新的拓扑图(如BZOJ上Apio2009的那...
分类:
编程语言 时间:
2015-02-04 00:21:11
阅读次数:
304
题意:给定一棵树,查询时给定两个点,求出两个点的距离。
暴力做肯定超时的。我的做法是采用lca(最近公共祖先)的离线算法,即tarjan算法(据说Tarjan提出了很多算法,可能还有很多tarjan算法),算法里用到了并查集。在输入完所有查询之后,在求出答案。tarjan算法的做法是:一开始vis数组初始化为0,从树根开始递归往下对点进行染色,刚到一个点的时候将vis取为-1,在继续递归...
分类:
编程语言 时间:
2015-01-24 09:02:19
阅读次数:
260
题意很简单
给一个树(n
若干个询问(5w)
对每个询问,问的是从u点走到v点(简单路径),商人在这个路径中的某点买入商品,然后在某点再卖出商品, 最大可能是多少
注意一条路径上只能买卖一次,先买才能卖
用的方法是离线LCA,在上面加了一些东西
对于一个询问, 假设u,v的LCA是f
那么有三种可能, 一个是从u到f 买卖了。 一个是从f到v买卖了, 一个是从...
分类:
其他好文 时间:
2015-01-22 01:45:47
阅读次数:
247
题目大意是:所有点在一个连通图上,希望去掉一条边得到两个连通图,且两个图上所有点的权值的差最小,如果没有割边,则输出impossible这道题需要先利用tarjan算法将在同一连通分量中的点缩成一个点后,重新构建一幅图,然后利用新建的图进行树形dp解决问题这道题目需要注意的是可能存在重边,那么子节点...
分类:
其他好文 时间:
2015-01-19 22:23:14
阅读次数:
215