[伯俊]1725ツリーの親を検索
5611 ワード
https://www.acmicpc.net/problem/11725
根のない木をあげます.ツリーのルートディレクトリが1の場合、各ノードの親ノードを解くプログラムを作成します.
第1行は、ノード数N(2≦N≦100000)を与える.2行目から、ツリーに接続された2つの頂点がN−1行に与えられる.
1行目からN-1行目まで、各ノードの親ノード番号が2番目のノードから順次出力されます.
BFSを使用すると問題を簡単に解決できる.
質問する
根のない木をあげます.ツリーのルートディレクトリが1の場合、各ノードの親ノードを解くプログラムを作成します.
入力
第1行は、ノード数N(2≦N≦100000)を与える.2行目から、ツリーに接続された2つの頂点がN−1行に与えられる.
しゅつりょく
1行目からN-1行目まで、各ノードの親ノード番号が2番目のノードから順次出力されます.
コミットコード
BFSを使用すると問題を簡単に解決できる.
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
tree = dict()
root = [0] * (n + 1)
for i in range(1, n + 1):
tree[i] = list()
for i in range(n - 1):
a, b = map(int, input().split())
tree[a].append(b)
tree[b].append(a)
q = deque()
q.append(1)
root[1] = 1
while q:
a = q.popleft()
for i in tree[a]:
if root[i] != 0: continue
root[i] = a
q.append(i)
for i in range(2, n + 1):
print(root[i])
Reference
この問題について([伯俊]1725ツリーの親を検索), 我々は、より多くの情報をここで見つけました https://velog.io/@nayoon-kim/백준-11725.-트리의-부모-찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol