articulation point

vertex를 없애면 그래프가 분리되는 지점

biconnected graph

articulation point가 없는 그래프

biconnected components

simple method

그래프에서 v 제거하고

그래프가 그대로인지 확인하고

v 돌려놓고 반복

O(n*(n+e)) (adjacency list 사용)

efficient method

vertex 하나 찍고 DFS로 spanning tree 만듦

사이클을 만드는 엣지는 점선으로 표시해줌

dfn : visiting order

low : (자식을 통해서) 갈 수 있는 ancestor들 중 가장 작은 dfn

first condition

루트의 경우 자식이 둘이면 articulation point

second condition

low(w) ≥ dfn(u)이면 articulation point

쉽게 말해 내 자식이 나보다 올라갈 수 있으면 ok