[BOJ/伯俊]1724接続要素の数(Python)
https://www.acmicpc.net/problem/11724
Problem
Problem
図面内の接続点数の集合数を尋ねる質問
Solution
隣接リストのDFSにadjでアクセス
コードの説明
1)adjアレイによる隣接行列の最小化
2)adjの各idx値にアクセスする際にアクセスするか否かを判断する
3)アクセスしていない場合は、再度dfsを呼び出します.
Python Code import sys
N,M=map(int,sys.stdin.readline().split())
visited=[False]*(N+1)
result=[]
def dfs(depth,visited):
if depth==M:
for i in result:
print(i,end=' ')
print()
else:
for i in range(1,N+1):
if not visited[i]:
visited[i]=True
result.append(i)
dfs(depth+1,visited)
result.pop()
visited[i]=False
dfs(0,visited)
Reference
この問題について([BOJ/伯俊]1724接続要素の数(Python)), 我々は、より多くの情報をここで見つけました
https://velog.io/@iwsl1234/BOJ백준-11724.-연결-요소의-개수Python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
隣接リストのDFSにadjでアクセス
コードの説明
1)adjアレイによる隣接行列の最小化
2)adjの各idx値にアクセスする際にアクセスするか否かを判断する
3)アクセスしていない場合は、再度dfsを呼び出します.
Python Code import sys
N,M=map(int,sys.stdin.readline().split())
visited=[False]*(N+1)
result=[]
def dfs(depth,visited):
if depth==M:
for i in result:
print(i,end=' ')
print()
else:
for i in range(1,N+1):
if not visited[i]:
visited[i]=True
result.append(i)
dfs(depth+1,visited)
result.pop()
visited[i]=False
dfs(0,visited)
Reference
この問題について([BOJ/伯俊]1724接続要素の数(Python)), 我々は、より多くの情報をここで見つけました
https://velog.io/@iwsl1234/BOJ백준-11724.-연결-요소의-개수Python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import sys
N,M=map(int,sys.stdin.readline().split())
visited=[False]*(N+1)
result=[]
def dfs(depth,visited):
if depth==M:
for i in result:
print(i,end=' ')
print()
else:
for i in range(1,N+1):
if not visited[i]:
visited[i]=True
result.append(i)
dfs(depth+1,visited)
result.pop()
visited[i]=False
dfs(0,visited)
Reference
この問題について([BOJ/伯俊]1724接続要素の数(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@iwsl1234/BOJ백준-11724.-연결-요소의-개수Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol