[伯俊]行列(Python Python草)


Problem Point


学生同士の順番、並んでいる様子を表します.このように,順序重視の問題では,位相整列を考えると解法時間を短縮できる.
記事作成者:https://www.acmicpc.net/problem/2252
問題で要求された価格を受け入れ、幹線を入手し、ディック形式で貯蔵する.別の地位を知るために、カタログとして保存するために学位カタログを発表した.
インデックスの作成を宣言し,先に入力した順序で位相を確認する.次に,各接続ノードを巡回し,位相を低減し,結果値を導出した.

最終回答

from collections import deque, defaultdict
M,N=map(int,input().split())

queue=deque()
key= defaultdict(lambda: [])
degree=[0 for i in range(M+1)]
answer=[]

for i in range(N):
    a ,b =map(int,input().split())
    key[a].append(b)
    degree[b]+=1
for i in range(1,M+1):
    if degree[i]==0:
        queue.append(i)
while queue:
    start=queue.popleft()
    answer.append(start)
    for i in key[start]:
        degree[i]-=1
        if degree[i]==0:
            queue.append(i)
print(*answer)