33.33m
오 뭔가 신기한 숫자..!
import sys
input = sys.stdin.readline
n = int(input().rstrip())
tree = [[] for _ in range(n + 1)]
for _ in range(n - 1):
p, c = list(map(int, input().rstrip().split()))
tree[p].append(c)
tree[c].append(p)
q = int(input().rstrip())
for _ in range(q):
t, k = list(map(int, input().rstrip().split()))
if t == 2:
print('yes')
else:
if len(tree[k]) < 2: # 자식이 하나뿐인 루트이거나, 마지막 노드
print('no')
else:
print('yes')
간선을 지우는 경우에는 무조건 트리가 2개 이상 생기고,
정점을 지우는 경우에는 두 경우 빼고는 전부 트리가 2개 이상 생긴다.
트리를 리스트로 받을 때, 연결된 것들을 전부 append 해놓았기 때문에, 연결점이 1개인 경우 위에 언급한 두 경우밖에 없다.