![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
强连通分量
文章平均质量分 85
zxy_snow
这个作者很懒,什么都没留下…
展开
-
zoj 2682 People like People(Kosaraju)
<br />感想详见http://blog.csdn.net/zxy_snow/archive/2011/01/17/6145924.aspx<br /> <br />kosaraju算法解释详见算导338页,把证明认真看完。<br /> <br />我只提示下一些情况。画图吧。框框里的数字是这种情况的答案。注意最下面的两种情况。其他的注释已经写得很详细了。<br /> <br /><br /> <br /> <br />#include <stdio.h>#include <stdlib.h>#i原创 2011-01-17 10:31:00 · 1164 阅读 · 1 评论 -
poj 2186 Popular Cows(Kosaraju + 变形)
感想详见:http://blog.csdn.net/zxy_snow/archive/2011/01/18/6149058.aspx我用了两种做法。Kosaraju 缩点后加DFS,搜索能满足题意的点,也就是缩点后集合能到达其他任意集合的点。1800+MS。Kosaraju 缩点后查找入度为0的点,如果只有1个,那么这个肯定就是答案。可以证明一下,如果没有入度为0的点,那么缩点肯定是一个环,这样的话,求强连通分量的时候,肯定是当成一个求的,就不会分这么多个。如果入度为0的点不为1,那么肯定有不能到达的缩点,原创 2011-01-18 11:09:00 · 1279 阅读 · 0 评论 -
poj 1236 Network of Schools(Tarjan)
<br />依旧找强连通分量的题来做,YM的是,这题开始没看懂 = =。。。看了别人的思路才看懂了,YM。<br /> <br />Task A : 在已经存在的图中,最少需要给多少个点,才能把这个图给遍历完。就是求入度为0的点。<br /> <br />Task B : 最少需要连接多少条边才可以使图为一个强连通图。因为两个强连通合并必然是出度为0的连接入度为0的点,所以要解决掉入度为0,和出度为0的点,所以答案是这两个的最大值(我说的点指缩点)。<br /> <br />#include <stdio.原创 2011-01-20 17:29:00 · 1656 阅读 · 0 评论 -
poj 2186 Popular Cows(Tarjan)
<br />感想详见:http://blog.csdn.net/zxy_snow/archive/2011/01/19/6151884.aspx<br /> <br />这题kosaraju过了,今天用tarjan过下,嘻嘻,63MS。找出度为0的点。<br /> <br />如果不会这个算法,就去学吧。 = =。我没啥好说的,看论文去~!<br /> <br />#include <stdio.h>#include <stdlib.h>#include <iostream>#include <原创 2011-01-19 11:28:00 · 1937 阅读 · 0 评论 -
poj 2553 The Bottom of a Graph(Tarjan~)
<br />找出度为0的强连通分量,然后按顺序输出即可。里面有句话开始没理解,就是如果有w到v,那么一定有v到w。意思是。如果v是sink,那么他连接的点一定也连接他。<br /> <br />这题比起之前做的两道来说简单多了,用tarjan了,还是不熟练啊。<br /> <br />这题没有bottom为空的情况。<br /> <br /> <br />#include <stdio.h>#include <stdlib.h>#include <iostream>#include <strin原创 2011-01-19 20:14:00 · 1144 阅读 · 2 评论 -
hdu 3861 The King’s Problem
求单侧连通分量的最小个数。求强连通分量后,在缩点后的图上用二分图匹配找最小路径覆盖即可。党写的缩点建图,我的匈牙利。。。#include #include #include #include #include using namespace std;const in原创 2011-07-20 19:10:35 · 1675 阅读 · 0 评论