codevs 1073 家族 并查集
Posted lpl_bys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 1073 家族 并查集相关的知识,希望对你有一定的参考价值。
没什么可以说的,并查集裸题,标签难度和实际不成正比啊,存个板子:
1 #include<stdio.h> 2 #include<string.h> 3 #define maxn 23333 4 int n,m,p,fa[maxn]; 5 int getf(int); 6 int find(int,int); 7 int main() 8 { 9 scanf("%d %d %d",&n,&m,&p); 10 for(int i=1;i<=n;i++)fa[i]=i; 11 for(int i=1;i<=m;i++){ 12 int x,y,t1,t2; 13 scanf("%d %d",&x,&y); 14 t1=getf(x); 15 t2=getf(y); 16 fa[t1]=t2; 17 } 18 for(int i=1;i<=p;i++){ 19 int x,y; 20 scanf("%d %d",&x,&y); 21 if(find(x,y)) printf("Yes\n"); 22 else printf("No\n"); 23 } 24 return 0; 25 } 26 int getf(int x){ 27 return fa[x]==x?x:getf(fa[x]); 28 } 29 int find(int x,int y) 30 { 31 int t1=getf(x),t2=getf(y); 32 return t1==t2?1:0; 33 }
以上是关于codevs 1073 家族 并查集的主要内容,如果未能解决你的问题,请参考以下文章