欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

$亲属关系$

程序员文章站 2022-05-18 19:35:58
...

$亲属关系$

\(problem\)

并查集例题

可先去看 并查集

#include <bits/stdc++.h>
using namespace std ;
typedef long long LL ;
inline LL read() { LL x(0) ; register char c=getchar() ;
    while(!isdigit(c)) c=getchar() ;
    while(isdigit(c)) x=(x<<1)+(x<<3)+(c&15) , c=getchar() ; return x ;
}
int n , m , p ;
int fa[5000+10] ;
inline int find(int x) {
    return fa[x] == x ? fa[x] : fa[x] = find(fa[x]) ;
}
inline void merge(int x,int y) {
    fa[find(x)] = find(y) ;
} 
signed main() {
    n = read() ; 
    m = read() ;
    p = read() ;
    for(register int i=1;i<=n;i++) fa[i] = i ;
    for(register int i=1;i<=m;i++) {
        int x = read() , y = read() ;
        merge(x,y) ;
    }
    for(register int i=1;i<=p;i++) {
        int x = read() , y = read() ;
        puts(find(x)==find(y)?"Yes":"No") ;
    }
    return 0 ;
}
posted @ 2019-03-18 12:22 breezeღ 阅读(...) 评论(...) 编辑 收藏