
强连通分量
文章平均质量分 77
Unin88
这个作者很懒,什么都没留下…
展开
-
poj 2186 Popular Cows
求解图中任一点都能到达的点的个数(除自身外),强连通缩点后找出度为零的点,如果大于1个那么不存在符合条件的点。注意当图中只有一个SCC时输出n。 #include #include #include #include #include using namespace std; const int N = 10010; const int M = 50010; stac原创 2015-03-15 20:31:11 · 361 阅读 · 0 评论 -
hdu 2767 Proving Equivalences
这道题是问最少添加几条边使得整个图强连通。首先,我们知道强连通是一个等价的关系,那么我们可以将强连通分量缩成一个点,即这个强连通分量的编号,这个过程称为强连通缩点。缩点后图变成一个DAG(有向无环),只需统计出度和入度为0的点各有多少,然后取大。这很好理解,因为我们添加边是从一个出度为0的点连到入度为0的点,这样就可以使整个图强连通。具体实现用的是Tarjan的算法= =。 #include原创 2015-03-11 16:24:20 · 474 阅读 · 0 评论 -
poj 2553 The Bottom of a Graph
这个题的题意真是醉了 一个点是sink不是说他和任一点互相可达,而是如果他能到达一个点的情况下,那个点必须能够到达他 = =。这样的话就是强连通缩点之后,出度为零的点及其强连通分量中的所有点都是sink。 #include #include #include #include #include using namespace std; const int N = 5010; con原创 2015-03-12 21:46:41 · 448 阅读 · 0 评论