321
社区成员




小蚂蚁群是一个庞大的群体,在这个蚂蚁群中有n只小蚂蚁 ,为了保证所有蚂蚁在消息传送的时候都能接收到消息,需要在他们之间建立通信关系。就是要求小蚂蚁都可以通过多只或者直接联系到其他人。 已知几条小蚂蚁之间有通信关系,请问还需要再新建至少多少条关系?
嗯,这次也是就弄个 AC ,没有特别精确算法。因为用例中,蚂蚁编号不是 1到n,所以,最后的结果输出,稍微改改样子
n,m = map(int,input().split())
arr = [list(map(int,input().split())) for _ in range(m)]
z = {v:{v} for v in range(1,n + 1)}
t = {}
for i in range(m):
a,b = sorted(arr[i])
c,d = a,b
while c in t:
c = t[c]
while d in t:
d = t[d]
c,d = sorted([c,d])
if c != d:
try:
z[c] |= z[d]
del z[d]
except:
pass
t[d] = c
print(n - len(t) - 1)