
图的连通性问题
code自留地
这个作者很懒,什么都没留下…
展开
-
受欢迎的牛(有向图的强连通分量)
每一头牛的愿望就是变成一头最受欢迎的牛。 现在有N头牛,编号从1到N,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。 你的任务是求出有多少头牛被除自己之外的所有牛认为是受欢迎的。 输入格式 第一行两个数N,M; 接下来M行,每行两个数A,B,意思是A认为B是受欢迎的(给出的信息有可能重复,即有可能出现多个A,B)。 输出格式 输出被除自己之...原创 2021-04-23 22:23:32 · 303 阅读 · 0 评论 -
Tarjan算法思路剖析
强连通分量就是有向图的极大子图 通过Tarjan算法把一个图分成多个强连通分量形成DAG,从而会具有一些很好的性质 Tarjan本质上还是递归操作,在递归的时候同时维护两个时间戳数组 其中dfn数组维护的是第一次遍历到的序号:有vis数组的作用,还有判断此点是不是这个点属于的连通分量中的根节点的作用 另外一个数组就是low数组,low[u]表示从u的子树中的结点出发,走一条交叉后向边或者边可以到达的v的dfs的最小值,并且要求v还能到达u(等价于v在栈中) 我们刚开始选到一个点u,先将其压入栈中,原创 2021-04-23 21:21:11 · 177 阅读 · 0 评论