题目描述:
给出n个人,m条关系,每次输入a,b,如果ab没有关系则建立ab之间的关系,但是如果ab已经建立联系,则这条信息算作冗余,输出冗余关系的数目。
解题思路:
十分基础的一个并查集。
代码:
#include<iostream>
using namespace std;
int fa[1010];
int getfather(int a)
{
if (fa[a]==a) return fa[a];
fa[a]=getfather(fa[a]);
return fa[a];
}
void un(int x,int y)
{
int fx=getfather(x),fy=getfather(y);
fa[fx]=fy;
}
int main()
{
int n,m,ans=0,a,b;
cin>>n>>m;
for (int i=1;i<=m;i++) fa[i]=i;
while (n--)
{
cin>>a>>b;
if (getfather(a)==getfather(b)) ans++;
else un(a,b);
}
cout<<ans<<endl;
}