tarjan 连通分量
tarjan算法
R_0nnie
这个作者很懒,什么都没留下…
展开
-
HDU4635 强连通分量
题目大意:给一张没有自环,没有重边的有向图。问最多加多少条边,要求加边完后的图没有自环,没有重边,且不是强连通的。 因为要添加最多的边,因此显然可以得到,最后的图是由两个强连通分量组成,设为a,b。a,b都为完全图,且a中所有点都指向b中每个点,b中点没有指向a中的点。 设a中的点数为x,b中的点数是y。 因此最后添加的边数N = x * (x - 1) + y * (y - 1) + x * y - m N = (x + y)2 - (x + y) + x * y - m = n2 - n + x * y原创 2021-02-11 19:50:43 · 136 阅读 · 0 评论 -
POJ3694 tarjan求桥+LCA+并查集优化
题目链接 题目大意:给定一张有n个点,m条边的无向连通图。然后依次加入q条边,问你每加入一条边,图中还剩下多少桥。 1.先将图中进行tarjan缩点,因为(边)双联通分量都被缩成了一个点,因此缩点后的图是一棵树。点与点之间的边是桥。 2.对于每次添加一条边,首先看两个点是不是属于一个双联通分量,如果是的话,则桥的数量不变。否则找出两点的祖先,因为从两点到祖先的路径可以构成一条环,所以路径上的桥经过添加边后不再是桥,减去相应的数量即可。 如果用此思路的话,时间复杂度是O(m + q * n) 对于一条边连接父原创 2021-02-11 12:18:42 · 319 阅读 · 0 评论