带偏移量的并查集

匿名 (未验证) 提交于 2019-12-03 00:40:02
//带偏移量的并查集≈并查集补集  //维护各点到父节点的距离 可用来分类  #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> using namespace std; int n,f[1001],d[1001]; int find(int x) {     if(x==f[x])         return x;     d[x]+=d[f[x]];     return f[x]=find(f[x]); } int get(int x,int y) {     int xx=find(x);     int yy=find(y);     if(xx!=yy)         f[xx]=yy; } int main() {     cin>>n;     for(int i=1;i<=n;i++)         f[i]=i;      for(int i=1;i<=n;i++)     {         int u,v;         cin>>u>>v;         get(u,v);     }     return 0;  } 

原文:https://www.cnblogs.com/water-radish/p/9280539.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!