蓝桥杯刷题--python-28-并查集

时间:2024-03-24 18:49:40

T=int(input())
def union(p,i,j):
    p1=parent(p,i)
    p2=parent(p,j)
    p[p1]=p2

def parent(p,i):
    root=i
    while p[root]!=root:
        root=p[root]
    while p[i]!=i:
        x=i;i=p[i];p[x]=root
    return root
class Node:
    def __init__(self,x,y,z):
        self.x=x
        self.y=y
        self.z=z

for _ in range(T):

    n,h,r=map(int,input().split())
    p=[i for i in range(n+2)]
    m=[]
    for i in range(1,n+1):
        x,y,z=map(int,input().split())
        m.append(Node(x,y,z))
        if z<=r:union(p,i,0)
        if (abs(z-h)<=r):union(p,i,n+1)
    
    for