[BOJ1707] 이분 그래프

Updated:

이분 그래프인지 아닌지 판별

  • 정점 집합을 둘로 분할하여, 각 집합에 속한 정점끼리는 서로 인접하지 않도록 분할할 수 있을 때, 이분 그래프라고 부름
  • 그래프가 입력으로 주어질 때, 이분 그래프 판별

입력

  • 테스트 케이스 수 K (2 <= K <= 5)
  • 그래프 정점 개수 V (1 <= V <= 20000)
  • 간선 개수 E (1 <= E <= 200000)

출력

  • K개의 줄에 걸쳐 입력으로 주어진 그래프가 이분 그래프이면 YES, 아니면 NO 순서대로 출력

설계

  • 그래프를 벡터로 구성하고, dfs를 이용해 방문하는 depth 순으로 0, 1 이분
  • 다음 노드로 이동할 때, 이미 거쳐간 노드가 현재 이분 된 값과 같으면 NO
  • 위 조건에 부합하지 않고 dfs끝나면 YES

피드백

  • 방문을 단순히 visit을 이용하여 처리 가능 (-1 : 미방문 / 0,1 : 이분)
  • 여러 케이스가 있기 때문에, 케이스 시작 전 visit 배열(-1), map, result 초기화 필요

How I solved(click to github)


ref :
BOJ1707

Leave a comment