[DFS/BFS]1325-高効率ハッカー


リンク-効率的なハッカー攻撃
一言~!あまりよくない

コード#コード#

import sys
from collections import deque

N,M = map(int,sys.stdin.readline().split())


graph=[[] for i in range(N+1)]

for i in range(M):
    v1, v2 = map(int,sys.stdin.readline().split())
    graph[v2].append(v1)

answers=[]

def bfs(v):
    count=1
    queue = deque()
    queue.append(v)
    visited = [False]*(N+1)
    visited[v]=True
    
    while queue:
        node = queue.popleft()
        for i in graph[node]:
            if not visited[i]:
                visited[i]=True
                queue.append(i)
                count+=1
    return count

for i in range(1,N+1):
    answers.append(bfs(i))
    
max_cnt=max(answers)

for i,answer in enumerate(answers):
    if max_cnt==answer:
        print(i+1,end=' ')
問題は難しくない.非常に一般的なDFS/BFSの問題...
私はBFSで最初から解いただけで、DFSで解くとメモリがオーバーするそうです.
BFSを使用する場合もinput()ではなくsysを使用します.stdin.readLine()を使用する必要があります.言語を選択するときはpython 3ではなくpython 3を使用する必要があります.これにより、タイムアウトは発生しません.