带偏移量的并查集
Posted water-radish
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带偏移量的并查集相关的知识,希望对你有一定的参考价值。
//带偏移量的并查集≈并查集补集 //维护各点到父节点的距离 可用来分类 #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; }
以上是关于带偏移量的并查集的主要内容,如果未能解决你的问题,请参考以下文章