时隔多年,再次入坑算法竞赛。。。。。
今天复习了点双,边双,割边缩点,割点缩点,强联通分量。
在强联通分量板题中,注意tarjan中的写法
if(!dfn[t]){ tarjan(t); low[x] = min(low[x],low[t]); }else if(ins[t]){ low[x] = min(low[x],dfn[t]); }
而不是
if(!dfn[t]){ dfs(t); low[x] = min(low[x],low[t]); }else { low[x] = min(low[x],dfn[t]); }
这里和无向图的点双边双不同,务必保证树边连下去的点不在其他的连通分量中时,才做更新low的操作