python实现dfs
查看原帖
python实现dfs
1322673
donk楼主2024/4/7 13:08
n,m =map(int,input().strip().split())
adj=[[0 for i in range(n)] for j in range(n)]
for i in range(m):
    a,b =map(int,input().strip().split())
    adj[a-1][b-1]=1
    adj[b-1][a-1]=1
x,y=map(int,input().strip().split())
# print(adj)
path=[0 for i in range(n)]#记录是否经过
node=[0 for i in range(n)]#记录经过的次数
def dfs(now,y,adj,path,node):
    if now==y:
        for i in range(0,n):
            if path[i]==1:
                node[i]+=1
    else:
        for i in range(0,n):
            if adj[now][i]==1 and path[i]==0:
                path[i]=1

                dfs(i,y,adj,path,node)
                path[i]=0

dfs(x-1,y-1,adj,path,node)
ans=0
if node[y-1]>0:
    for i in range(n):
        if node[y-1]==node[i]:
            ans+=1
    print(ans-1)
else:
    print("-1")



2024/4/7 13:08
加载中...