UVa Live (LA) 3644 典型并查集

来源:互联网 发布:vm12虚拟机安装mac os 编辑:程序博客网 时间:2024/06/05 17:22
#include<bits/stdc++.h>
using namespace std;
const int maxn=100101;
int father[maxn];
int fa(int u){
if(father[u]==u)return u;
else return father[u]=fa(father[u]);
}
int main(){
int i,j,k,m,n,x,y,z,u,v;
while(scanf("%d%d",&u,&v)!=EOF){
for(i=0;i<=maxn;i++)father[i]=i;
int ans=0;father[u]=v;
while(scanf("%d",&u)){if(u<0)break;
scanf("%d",&v);
int x=fa(u),y=fa(v);
if(fa(u)!=fa(v))father[x]=y;
else ans++;
}
printf("%d\n",ans);
}
return 0;
}
/*
1 2
3 4
3 5
3 1
2 3
4 1
2 6
6 5
-1*/
0 0
原创粉丝点击