并查集的全面应用

来源:互联网 发布:淘宝千人千面买家标签 编辑:程序博客网 时间:2024/04/29 23:26

nyist 209

# include<stdio.h>int a[10005],p[10005];int find(int x){if(a[x]==x)return x;    elsea[x]=find(a[x]);}void bin(int x,int y){x=find(x);y=find(y);if(x>y)a[x]=y;elsea[y]=x;}int main(){int N,n,m,x,y,k=0;scanf("%d",&N);while(N--){scanf("%d%d",&n,&m);int i,flag=0,fx,fy;k++;for(i=1;i<=n;i++){a[i]=i;p[i]=i;}for(i=0;i<m;i++){scanf("%d%d",&x,&y);fx=find(x);fy=find(y);//printf("%d%d",fx,fy);if(fx==fy){flag=1;}if(p[x]==x)p[x]=y;elsebin(fy,p[x]);if(p[y]==y)p[y]=x;elsebin(fx,p[y]);}printf("Scenario #%d:\n",k);if(flag==1){printf("Suspicious bugs found!\n");}elseprintf("No suspicious bugs found!\n");}return 0;}        

原创粉丝点击