转自:https://www.byvoid.com/blog/scc-tarjan/網誌列表標籤項目關於聯繫四月142009作者:byvoid閱讀: 158882計算機科學圖論強連通分量Tarjan堆棧有向图强连通分量的Tarjan算法[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径...
分类:
编程语言 时间:
2015-03-18 10:32:16
阅读次数:
200
nocow上的题解很好。http://www.nocow.cn/index.php/USACO/schlnet如何求强连通分量呢?对于此题,可以直接先用floyd,然后再判断。--------------------------------------------------------------...
分类:
Web程序 时间:
2015-03-17 23:06:26
阅读次数:
209
class Graph: def __init__(self): self.V = []class Vertex: def __init__(self, x): self.key = x self.color = 'white' s...
分类:
编程语言 时间:
2015-03-17 00:28:51
阅读次数:
295
时间戳 dfs_clock :说白了就是记录下访问每个结点的次序。假设我们用 pre 保存,那么如果 pre[u] > pre[v], 那么就可以知道先访问的 v ,后访问的 u 。
现在给定一条边, (u, v), 且 u 的祖先为 fa, 如果有 pre[v]
1 求连通分量:
相互可达的节点称为一个连通分量;
#include
#include
#i...
分类:
其他好文 时间:
2015-03-14 15:24:00
阅读次数:
165
题目地址:POJ 2762
先缩点,然后判断拓扑网络每层的个数是否为1(我承认如果事先不知道这题需要拓扑排序我是想不出来这点的。。。)。因为假如有一层为2的话,那么从此之后这两个岔路的点就不可能从一点到另一点的。
代码如下:#include
#include
#include
#include
#include <al...
分类:
编程语言 时间:
2015-03-13 20:45:23
阅读次数:
176
给出一个有向图,其中每个点向自己下面的和右边的那个点有边相连。'*'号的点可以进行瞬间转移(可以选择转移或者不转移),每个点有点权且不为负。'#'号的点是不能到达的点。每到一个点获得它的权值且仅一次,求出能获得的最大点权和。...
分类:
其他好文 时间:
2015-03-12 22:35:17
阅读次数:
138
题目地址:POJ 2375
对每个点向与之相邻并h小于该点的点加有向边。然后强连通缩点。问题就转化成了最少加几条边使得图为强连通图,取入度为0和出度为0的点数的较大者即可。注意,当强连通分量只有一个的时候,答案是0,而不是1.
代码如下:
#include
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2015-03-12 19:15:06
阅读次数:
197
题目地址:POJ 2553
题目意思不好理解。题意是:G图中从v可达的所有点w,也都可以达到v,这样的v称为sink。然后升序输出所有的sink。
对于一个强连通分量来说,所有的点都符合这一条件,但是如果这个分量还连接其他分量的话,则肯定都不是sink。所以只需要找出度为0的强连通分量即可。
代码如下:
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2015-03-12 17:19:08
阅读次数:
203
题目地址:POJ 2186
先用强连通分量缩点,然后形成一棵树。我第一次用的判定条件是入度为分量数-1。虽然这种情况下确实正确。但是在树中也是有间接关系的。这个条件并不是充分必要条件。正确的做法是逆序建树,然后找根结点。而且根结点有且只有一个才可以。所以转化成了找出度为0的分量。
代码如下:
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2015-03-12 17:13:17
阅读次数:
168
给出一个二分图以及其中一个完备匹配,求对于每个X点,所有可以与之匹配的Y点,使得最终仍然能得到一个完备匹配。...
分类:
其他好文 时间:
2015-03-11 17:14:04
阅读次数:
125