【HPU】[1735]老王修马路(一)

这里写图片描述

简单的并查集模板题

#include<stdio.h>
int par[1200];
int find(int m) {
    if(par[m]==m)
        return m;
    else
        return par[m]=find(par[m]);
}
void unite(int x,int y) {
    x=find(x);
    y=find(y);
    par[x]=par[y];
}
int main() {
    int T;
    scanf("%d",&T);
    while(T--) {
        int n,m;
        scanf("%d %d",&n,&m);
        for(int i=1; i<=n; i++)
            par[i]=i;
        for(int i=0; i<m; i++) {
            int tn,tm;
            scanf("%d %d",&tn,&tm);
            unite(tn,tm);
        }
        int i;
        for(i=1; i<=n; i++)
            if(find(i)!=find(1))
                break;
        if(i<=n)
            printf("No
");
        else
            printf("Yes
");
    }
    return 0;
}

【HPU】[1735]老王修马路(一)

原文地址:https://www.cnblogs.com/BoilTask/p/12569631.html