zoukankan      html  css  js  c++  java
  • $亲属关系$

    (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 ;
    }
    
    不存在十全十美的文章 如同不存在彻头彻尾的绝望
  • 相关阅读:
    van Emda Boas
    斐波那契堆
    NTT
    FFT
    KDTree
    扩展kmp
    kmp
    Dancing Links
    树的prufer编码
    有向图最小路径覆盖
  • 原文地址:https://www.cnblogs.com/qf-breeze/p/10551421.html
Copyright © 2011-2022 走看看