目录:
简介缩点:
如果两个顶点可以相互通达,则称两个顶点强连通 ( strongly connected ) 。
如果有向图G的每两个顶点都强连通,称 G 是一个强连通图。有向图的极大强连通子图,称为强连通分量 ( strongly connected components ) 。
Tarjan 算法是用来求有向图的强连通分量的。求有向图的强连通分量的 Tarjan 算法是以其发明者 Robert Tarjan 命名的。Robert Tarjan 还发明了求双连通分量的Tarjan算法。
实现:
老规矩,引入例题: 洛谷 P3387 【模板】缩点
分析:需要找出一条点权最大的路径就行了,不限制点的个数。考虑对于一个环上的点被选择了,那么一整条环都被选择。很关键的是题目还允许重复经过某条边或者某个点,因此整个环实际上可以看成一个点(选了其中一个点就应该选其他的点)。
显然,是一道缩点 + 拓扑排序
既然缩点,就不得不提一下 Tarjan 算法:
Tarjan 算法是基于对图深度优先搜索的算法,每个强连通分量