常见错误
- 数组开小
- 忘记清空
- 没有判断边界
- 2023/10/21 CSP-S T2 数组开小 100 -> 85
- 求点双连通分量时要特判只有一个节点的图和自环
- 求边双连通分量和求点双不太相同,反而和求 \(SCC\) 有些相似。有两种求法。
- 先求出割边然后在不能走割边的情况下 \(dfs\),较为稳妥。注意可能会出现重边的情况,如果我们计算父亲会去除掉 \(u\rightarrow fa\) 的两条边的情况,因此我们为了防止特判掉,我们要记录到父亲的边是哪一条。
- 边双联通无非就是求无向图中的环,因为一条边不是割边就相当于他在一个环上,所以最后弹栈时要在
tarjan()
的最后判断是否满足dfn[u]==low[u]
,如果是则弹栈。第二个问题同样是重边的问题要考虑,方法同上。