poj 2524 并查集入门

来源:互联网 发布:扫描sql注入点 编辑:程序博客网 时间:2024/05/18 16:56

点击打开链接

#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;const int M =50100;int par[M],n,m;int find(int x){int a=x;//while(par[a]!=a) //找到老大 {a=par[a];}int t;while(x!=a)//路径压缩 {t=par[x]; //保存上级 par[x]=a; //更新x上级 x=t;}return a;}int  Union(int x,int y){int a,b;a=find(x); b=find(y);if(a==b) return 0;par[a]=b;return 1;}int main(){int x,y,ans,cas=0;while(cin>>n>>m&&(n+m)) //起初有n个religion {int minus=0;for(int i=1;i<=n;i++){par[i]=i; //}while(m--){scanf("%d%d",&x,&y);minus+=Union(x,y);  //若有两个不同的religion合并则减少一个religion }printf("Case %d: ",++cas);cout<<n-minus<<endl;}return 0;}


0 0
原创粉丝点击