音楽番組
質問する
https://www.acmicpc.net/problem/2623
コード#コード#
from collections import deque
n, m = map(int, input().split())
graph = [[] for _ in range(n+1)]
in_degree = [0]*(n+1)
for i in range(m):
temp = list(map(int, input().split()))
for j in range(2, temp[0]+1):
graph[temp[j-1]].append(temp[j])
in_degree[temp[j]] += 1
q = deque()
for i in range(1, n+1):
if in_degree[i] == 0:
q.append(i)
answer = []
while q:
now = q.popleft()
answer.append(now)
for i in graph[now]:
in_degree[i] -= 1
if in_degree[i] == 0:
q.append(i)
if len(answer)==n:
for i in answer:
print(i)
else:
print(0)
に答える
位相位置合わせの問題!
歌手たちをグラフのノードと見なし,入力した出演歌手の順序を一方向性幹線で接続すると,ループのない一方向性グラフの例入力が完了する.
for i in range(m):
temp = list(map(int, input().split()))
for j in range(2, temp[0]+1):
graph[temp[j-1]].append(temp[j])
in_degree[temp[j]] += 1
# graph [[], [4], [5, 3], [], [3], [4], [2]]
# in_degree [0, 0, 1, 2, 2, 1, 0]
これでgraphとin degreeが完了し、in degreeはindexのノードが何個のノードに接続されているかを示します(?)表示in degreeが0のノードをqueueに挿入しbfsで順番~~を出力する
Reference
この問題について(音楽番組), 我々は、より多くの情報をここで見つけました https://velog.io/@josajang98/백준-2623-음악프로그램テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol