问题描述
我尝试实现联合查找算法来查找图中的连通分量的数量。
问题链接 - https://www.hackerearth.com/problem/algorithm/connected-components-in-a-graph/
python中的问题代码 -
def cc(n,edges):
length=len(edges)
l=[-1]*(n+1)
rank=[0]*(n+1)
for i in range(length):
a=edges[i][0]
b=edges[i][1]
union(a,b,rank,l)
count=0
for i in range(1,n+1):
if l[i]==-1:
count+=1
print(count)
def union(a,l):
fromp=find(a,l)
top=find(b,l)
if rank[fromp]>rank[top]:
l[top]=fromp
elif rank[top]>rank[fromp]:
l[fromp]=top
else:
l[fromp]=top
rank[top]+=1
def find(a,l):
if l[a]==-1:
return a
par=find(l[a],l)
l[a]=par
return par
n,e=map(int,input().split())
edges=[]
for _ in range(e):
edges.append(list(map(int,input().split())))
cc(n,edges)
代码不起作用,并且给出了错误的答案,甚至为一个测试用例提供了运行时错误。有人可以帮忙吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)