一共有几块

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

同样合并完之后。运行下面这段程序:

NAMES = ["阿岚", "小满", "阿泰", "南风", "北辰"]
EDGES = [("阿岚", "小满"), ("阿岚", "阿泰"),
         ("小满", "阿泰"), ("阿泰", "南风")]

def find(p, x):
    while p[x] != x:
        p[x] = p[p[x]]
        x = p[x]
    return x

def union(p, a, b):
    ra = find(p, a)
    rb = find(p, b)
    if ra != rb:
        p[ra] = rb

p = {}
for n in NAMES:
    p[n] = n
for a, b in EDGES:
    union(p, a, b)
roots = {}
for n in NAMES:
    roots[find(p, n)] = True
print(len(roots))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论