DFS 공부중인데
문제에서 주어진게 모든 정점의 outdegree가 1인 유향 그래프고
그 그래프에서 알아내야 하는거는 각 컴포넌트들의 모든 정점 갯수랑 각 컴포넌트에서 사이클을 이루는 정점들의 갯수인데
여기서 DFS를 돌리면 사이클은 쉽게 구해지는데
컴포넌트는 DFS 시작점에 따라서 연결된 다른 점을 놓치게 됨
이런 상황에서 컴포넌트를 정확히 구할 수 있는 간단한 방법이 있을까?
DFS 공부중인데
문제에서 주어진게 모든 정점의 outdegree가 1인 유향 그래프고
그 그래프에서 알아내야 하는거는 각 컴포넌트들의 모든 정점 갯수랑 각 컴포넌트에서 사이클을 이루는 정점들의 갯수인데
여기서 DFS를 돌리면 사이클은 쉽게 구해지는데
컴포넌트는 DFS 시작점에 따라서 연결된 다른 점을 놓치게 됨
이런 상황에서 컴포넌트를 정확히 구할 수 있는 간단한 방법이 있을까?
컴포넌트 = 유니온파인드
각 컴포넌트애서 사이클은 최대 1개
유향 그래프에서의 컴포넌트의 정의가 뭐지?
간선이 연결되어만 있으면 같은 컴포넌트
그럼 그냥 유파하거나 양방향 간선으로 만들고 dfs 돌리면 되잖아
indegree가 0인 정점들에서부터 dfs를 시작하면 됩니다.