def find(parent, i):if parent[i] != i:parent[i] = find(parent, parent[i])return parent[i]def union(parent, rank, x, y):xroot = find(parent, x)yroot = find(parent, y)if xroot == yroot:returnif rank[xroot] = 2: # 只有至少 2 个公共端口才合并union(parent, rank, i, j)merged = {}for i in range(M):root = find(parent, i)if root not in merged:merged[root] = setmerged[root].update(groups[i])result = for i in range(M):root = find(parent, i)if root in merged:sorted_group = sorted(merged[root])result.append(sorted_group)del merged[root] # 确保每个组只输出一次return result# **自定义输入**M = int(input.strip) # 读取组数groups = for _ in range(M):group = list(map(int, input.strip.split)) # 读取每组端口groups.append(group)# **计算并输出结果**output = merge_port_groups(M, groups)for group in output:print(" ".join(map(str, group)))摘要:def find(parent, i):if parent[i] != i:parent[i] = find(parent, parent[i])return parent[i]def union(parent, rank, x, y):xroot = fin
来源:小康说科技
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!