1
回答
python数组的奇怪问题
华为云实践训练营,热门技术免费实践!>>>   
n, m = list(map(int, raw_input().split(' ')))
k = 0


def find(x):
	if x == f[x]:
		print(x)
		return x
	else:
		f[x] = find(f[x])


def union(a, b):
	f1 = find(a)
	f2 = find(b)
	print("f2的值",f2)
	if f1 != f2:
		f[f2] = f1


if __name__ == '__main__':
	#初始化
	f = [i for i in range(0, n + 1)]

	for i in range(m):
		a, b = list(map(int, raw_input().split(' ')))
		union(a, b)

	for i in range(1, n + 1):
		if f[i] == i:
			k += 1
	print(2 ** (n - k))


在做这道题的时候,测试数据

10 10
1 8
4 10
4 6
5 10
2 3
1 7
3 4
3 6
6 9
3 7

下,某次find返回4以后f2的值变成了None,感觉莫名其妙



举报
yongzhong
发帖于3年前 1回/175阅
顶部