强连通
文章平均质量分 78
tauriel
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 4612 Warm up (强连通,求树的直径)
题意:给出一个无向图,问加一条边后,最少还有几个桥。 经过缩点后的图肯定是一个树,所有树边都是桥。连接任何两个叶子结点都可以使 “从这两点到根节点之间的所有桥都消失”。 所以要想让剩下的桥最少,那么找到最长的两个树边,即找到从一个叶子结点到另一个叶子结点的最长路径(使用两次bfs),然后ans=桥的总数-直径。 ps:需要使用手动扩栈 否则会re #pragma comme原创 2015-09-10 16:21:43 · 370 阅读 · 0 评论 -
强连通相关:poj1236,poj2186,poj2762,hdu4738
相关的概念: 割边:在连通图中,删除了连通图的某条边后,图不再连通。这样的边被称为割边,也叫做桥。 割点:在连通图中,删除了连通图的某个点以及与这个点相连的边后,图不再连通。这样的点被称为割点。 对于有向图上的2个点a,b,若存在一条从a到b的路径,也存在一条从b到a的路径,那么称a,b是强连通的。 对于有向图上的一个子图,若子图内任意点对(a,b)都满足强连通,则原创 2015-09-04 20:25:16 · 444 阅读 · 0 评论 -
POJ 3694 Network(强连通分量+LCA)
题意:给出一个无向图,然后多次询问,每次添加一条有向边后该图中存在多少桥。 用tarjan算法统计有多少个桥,并将这些边标记,对于每次询问,求两个点的LCA,在寻找的途中路过的边全都不是桥,所以若遇到有标记的边,则计数减一并取消标记即可(避免多次计数)。可以直接利用tarjan函数中的dfn数组来求LCA,因为dfn记录的就是每个点的访问次序。 #include #includ原创 2015-09-08 15:42:53 · 440 阅读 · 0 评论 -
POJ 3352 Road Construction(边的双边通)
双连通分量:对于一个无向图的子图,当删除其中任意一个点(边)后,不改变图内点的连通性,这样的子图叫做点的双连通子图。而当子图的边数达到最大时,叫做点的双连通分量。 边连通度:使一个子图不连通所需要删除的最小的边数就是该图的边连通度。 题意:给出无向图,求出至少添加几条边能使任意两点间至少有两条不同的路连接。 思路:求出双连通分量(即low[u]==low[原创 2015-09-24 18:12:00 · 508 阅读 · 0 评论
分享