hdu1232-畅通工程(并查集)

来源:互联网 发布:新手怎么装修淘宝店铺 编辑:程序博客网 时间:2024/04/29 20:09
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>#include<cstdlib>#include<map>#include<queue>#include <deque>#include <list>#include <ctime>#include <stack>#include <vector>#include<set>#define Maxn 1024#define MODtypedef long long ll;#define FOR(i,j,n) for(int i=j;i<=n;i++)#define DFR(i,j,k) for(int i=j;i>=k;--i)#define lowbit(a) a&-a#define Max(a,b) a>b?a:b#define Min(a,b) a>b?b:aconst int inf = 0x3f3f3f3f;const double pi = acos(-1.0);using namespace std;int n,m,f[Maxn];int getf(int v){   if(f[v]==v)    return v;    else {f[v]=getf(f[v]);return f[v];}}int merge(int v,int u){   int t1,t2;    t1=getf(v);    t2=getf(u);    if(t1!=t2)    {        f[t2]=t1;        return 1;    }    return 0;}int main(){   while(~scanf("%d%d",&n,&m)&&n)    {   int u,v,ans=0;        FOR(i,1,n)        f[i]=i;        FOR(i,1,m)        {scanf("%d%d",&u,&v);         merge(u,v);        }        FOR(i,1,n)        if(f[i]==i)ans++;        printf("%d\n",ans-1);    }    return 0;}

0 0
原创粉丝点击