황소개발자

백준 1707 파이썬 python : 이분 그래프 @@황소처럼 우직하게@@ 이렇게 푸는겁니당 본문

백준 문제 풀이

백준 1707 파이썬 python : 이분 그래프 @@황소처럼 우직하게@@ 이렇게 푸는겁니당

hjp845 2020. 3. 2. 19:14
반응형
import sys
input = sys.stdin.readline

def bfs_binary(v, visited, color):
    q = [v]
    visited[v] = True
    color[v] = 1
    while q:
        now = q.pop(0)
        for nxt in adj_lst[now]:
            if not visited[nxt]:
                q.append(nxt)
                color[nxt] = 3 - color[now]
                visited[nxt] = True
            else:
                if color[now] == color[nxt]:
                    return False
    return True

t = int(input())
for i in range(t):
    n, m = map(int, input().split())
    adj_lst = [[] for _ in range(n + 1)]
    for j in range(m):
        a, b = map(int, input().split())
        adj_lst[a].append(b)
        adj_lst[b].append(a)
    visited = [False for _ in range(n + 1)]
    color = [0 for _ in range(n + 1)]
    flag = True
    for node in range(1, n + 1):
        if not visited[node]:
            if not bfs_binary(node, visited, color):
                flag = False
                break
    if not flag:
        print("NO")
    else:
        print("YES")

색깔 입혀주시고 1 아니면 2를 입력해줄꺼에요

같은 숫자가 곁에 잇으면 이분 그래프가 될 수 없어요

그리고

연결 그래프가 아닐 수 있다는 것에 명심하세요.

 

반응형
Comments