Hueestory

이분 그래프 (bipartite graph) 본문

PS(중단)/algorithm

이분 그래프 (bipartite graph)

히명 2024. 5. 29. 08:25

<정의>

graph의 모든 node를 빨강과 파랑으로 색칠하되, 모든 edge가 빨강과 파랑 node를 포함해야 한다

위 그림에서 각 edge는 빨강과 초록 node를 포함하고 있으며, 같은 색의 두 node를 포함하는 edge는 존재하지 않는다

=> 같은 색의 두 node를 포함하는 edge가 존재할 경우 해당 그래프는 이분 그래프가 아니다

 

<구현>

bool isBipartite() {
    for (int i = 1; i <= v; i++) {
        for (int j = 0; j < A[i].size(); j++) {
            int next = A[i][j];
            if (visited[i] == visited[next]) return false;
        }
    }

    return true;
}

- graph를 인접 리스트로 표현한 2D vector A에 대해 이분 그래프의 여부를 판단하는 예시 코드

'PS(중단) > algorithm' 카테고리의 다른 글

스택, 큐, 정렬, 탐색  (0) 2024.10.14
소수 판별 코드  (0) 2024.08.27
그래프 탐색 (계속 추가)  (0) 2024.05.28
Comments