并查集模板
Posted fuyun_boy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并查集模板相关的知识,希望对你有一定的参考价值。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 int N,M,fa[10005]; 8 int find(int ); 9 10 void pt(int x,int y) 11 { 12 int faa=find(x); 13 int fbb=find(y); 14 if(faa==fbb)printf("Y\n"); 15 else printf("N\n"); 16 } 17 18 int find(int x) 19 { 20 int r=x; 21 while( fa[r]!=r )r=fa[r]; 22 while(x!=r){ 23 x=fa[x]; 24 fa[x]=r; 25 } 26 return r; 27 } 28 29 void ADD( int X , int Y ) 30 { 31 int faa=find(X); 32 int fbb=find(Y); 33 if( faa != fbb ){ 34 fa[faa]=fbb; 35 } 36 } 37 38 void init() 39 { 40 int X,Y,Z; 41 cin>>N>>M; 42 for(int i=1;i<=N;i++){ 43 fa[i]=i; 44 } 45 for(int j=1;j<=M;j++){ 46 scanf("%d%d%d",&Z,&X,&Y); 47 if(Z==1)ADD( X , Y ); 48 if(Z==2)pt( X , Y ); 49 } 50 } 51 52 int main() 53 { 54 init(); 55 return 0; 56 }
洛谷3367:http://www.luogu.org/problem/show?pid=3367
以上是关于并查集模板的主要内容,如果未能解决你的问题,请参考以下文章
带权并查集(含种类并查集)经典模板 例题:①POJ 1182 食物链(经典)②HDU - 1829 A bug's life(简单) ③hihoCoder 1515 : 分数调查(示例代码(代