时隔多年,再次入坑算法竞赛。。。。。
今天复习了点双,边双,割边缩点,割点缩点,强联通分量。
在强联通分量板题中,注意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的操作