洛谷p3367 并查集 模板(人称找爹)

找爹函数模板

int find(int x)照样定义一个函数find

{

  if(fa[x]!=x)

    fa[x]=find(fa[x]);找到他的爹,就是找到他的根源

  return fa[x];

}

#include<bits/stdc++.h>
using namespace std;
int mo[500005];
int n,m,zi,xi,yi;
int find(int x)
{
 if(mo[x]!=x)
  mo[x]=find(mo[x]);
 return mo[x];
}
int main()
{
 cin>>n>>m;
 for(int i=1;i<=n;i++)
  mo[i]=i;
 for(int i=1;i<=m;i++)
 {
  cin>>zi>>xi>>yi;
  if(zi==1)
  {
   mo[find(yi)]=find(xi);
  }
  else
   if(find(yi)==find(xi))
    cout<<"Y\n";
   else
    cout<<"N\n";
 }
 return 0;
}

猜你喜欢

转载自www.cnblogs.com/fanwentao/p/11621033.html