冗余关系

来源:互联网 发布:php怎么写后台 编辑:程序博客网 时间:2024/04/30 14:54

题目描述:

         给出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;}


0 0
原创粉丝点击