バックアップ/接続要素数/1724


Question
質問リンク
Silver 2
Logic
基本構造きほんこうぞう:dfs
1.入力情報に基づいて、グラフィックを2次元配列liとして実装する.
2.ブラウズするかどうかを判断するアクセスリストを表示します.
3.検出されていない頂点について、dfsを実行します.
4.dfs実行後、それに関連付けられたすべての頂点にアクセスします.
5.最後の頂点に移動し、dfsを呼び出す回数を出力します.
Code
import sys
sys.setrecursionlimit(10000)

N,M= map(int,sys.stdin.readline().split())
visit = [0 for i in range(N+1)]
li = [[0 for __ in range(N+1)] for _ in range(N+1)]

for i in range(M):
    a,b = map(int,sys.stdin.readline().split())
    li[a][b]=1
    li[b][a]=1

def dfs(v):
    visit[v]=1
    for i in range(1,N+1):
        if visit[i]==0 and li[v][i]==1:
            dfs(i)

cnt=0
for i in range(1,N+1):
    if visit[i]==0:
        dfs(i)
        cnt+=1
print(cnt)