学了快五六天的tarjan算法了,个人感觉tarjan的核心主要是求出low[i]和dfn[i]数组(分别为返祖边和树边),然后利用二者关系解决一下三个问题:
(1)有向图的强连通分量
这个基本时网上大部分tarjan模板给出的解决的问题,low[i]==dfn[i]时存在强连通分量。
推荐博客:据说是全网最全汇总,挺适合入门的
(2)无向图的双联通分量
这部分其实有大致分为四个小知识点:割点,割边(桥),边双连通,点双连通
推荐博客:em.....讲双联同分量讲的特全,没有了解过的可以过来看看
(3)最近公共祖先问题(LCA)
解决LCA问题的算法又叫tarjan离线算法,用到了并查集和dfs,目前这里自己掌握的都不太好,理解了再更。
推荐博客:啧啧啧,OI大佬的第一篇博客就如此厉害