코테용 문제풀이/백준
이분 그래프 풀이
doctscoder
2023. 2. 2. 16:05
문제 링크: https://www.acmicpc.net/problem/1707
백준 알고리즘 기초 2/2 600에서 4번째 - 1707번 이분 그래프를 풀어보았다.
풀이: https://ji-gwang.tistory.com/293 를 참고했다.
C++
Python
import sys
sys.setrecursionlimit(100000)
def dfs(v,a):
global res
if res: return
visit[v]=a
for i in mat[v]:
if not visit[i]:
dfs(i,-a)
elif visit[v]==visit[i]:
res=True
return
k=int(input())
for _ in range(k):
v,e=map(int,sys.stdin.readline().split())
mat=[[] for _ in range(v+1)]
visit=[False]*(v+1)
for i in range(e):
a,b=map(int,sys.stdin.readline().split())
mat[a].append(b)
mat[b].append(a)
res=False
for i in range(1,v+1):
if not visit[i]:
dfs(i,1)
if res: break
print('NO' if res else 'YES')
Java