[伯俊-2644]カウント
質問する
リンク
コード#コード#
from collections import deque
n = int(input())
a, b = map(int, input().split())
m = int(input())
fam = [[] for _ in range(n+1)]
visited = [0] * (n+1)
for _ in range(m) :
x, y = map(int, input().split())
fam[x].append(y)
fam[y].append(x)
queue = deque()
queue.append(a)
while queue :
q = queue.popleft()
for f in fam[q] :
if visited[f] == 0 :
queue.append(f)
visited[f] = visited[q] + 1
if f == b :
break
if visited[b] == 0 :
print(-1)
else :
print(visited[b])
に答える
幅優先探索(BFS)で問題を解く.
3-1. このとき、もう一つの寸法を計算する必要がある番号であれば、繰り返し文を停止します.
3-2. あるいは2番に戻ります.
Reference
この問題について([伯俊-2644]カウント), 我々は、より多くの情報をここで見つけました https://velog.io/@malgam/백준-2644-촌수계산テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol