有关图的连通性
文章平均质量分 79
AcDora
这个作者很懒,什么都没留下…
展开
-
poj1236 Network of School ( tarjian + 缩点 )
这算是我实现的第一个强连通分量(scc)的题目, 之前一直对于缩点有畏惧的心理,总觉得很复杂,其实很简单。只要遍历每个边,如果一个遍的起点和终点不在同一个连通分量中,那么这个两个连通分量就之间就应该有一条边,同时,如果要建一个新图(DAG)的话,那么要判断这个边是不是之前有加过,排除重复加边(因为在两个连通分量中,可能有两条来自这个两个scc中的点,可能是四个点也可能是3个点构成的边,或者更多的方原创 2013-08-02 11:09:42 · 1054 阅读 · 0 评论 -
hdu 4635 Strongly connected (tarjan)
把所有scc找出来,缩点,然后在出度为0或入度为0的的块中选择点数最小的块作为独立块,使得这一块和其他的块不能强连通,其余的点都实现强连通即可!#include #include #include #include using namespace std;const int N = 100010;vector G[N];int pre[N], lowlink[N], sccn原创 2013-08-03 08:14:06 · 959 阅读 · 0 评论 -
poj 2186 Popular cows ( tarjan )
这道题开始的我忽略了如果它不连通的情况,判断的时候连着入度判断让入度不为0,出度为1, 但是如果是不连通的话,那就错了,两个scc之间没有边的话,入度都为0,出度也都为0;并且,如果这个scc块出度为0,并且整张图不是scc的话,那么这个scc块入度必然不会为0,完全没有判断的必要!题目是说要找最受欢迎的cows,一个cow只有被所有其他的cows认可才算是最受欢迎。所有这道题也就是求,从图中原创 2013-08-03 21:55:37 · 939 阅读 · 0 评论 -
poj 2762 Going from u to v or v to u (tarjan+缩点+dfs搜索)
这道题大致想法没有问题,首先要缩点,然后重构图,判断重构的图是不是弱连通。这里有分析可知,不管图是什么样的,里面一定存在一条链,从入度为0的点走到出度为0的点,这一路上要包括所有的点。要想任意两点都能弱连通,那么必然边的方向是一定。tarjan缩点,重构图就不用解释了,主要是后面怎么判断DAG是不是有一条链包括所有的点。这里用的是dfs搜索,查过其他牛们的博客,还有拓扑排序(如果删掉一个点后,原创 2013-08-04 00:25:32 · 1993 阅读 · 1 评论