hdu1213

来源:互联网 发布:yy免费协议软件 编辑:程序博客网 时间:2024/05/29 07:56

最简单的并查集。

2015.10.5:

hahaha

#include<stdio.h>#include<string.h>#include<iostream>using namespace std;#define N 1010int fa[N];int root(int x){    if(fa[x]==x){        return x;    }    else{        fa[x]=root(fa[x]);        return fa[x];    }}int main(){    int t;    int n,m;    int a,b;    int ans;    scanf("%d",&t);    while(t--){        scanf("%d%d",&n,&m);        for(int i=1;i<=n;i++){            fa[i]=i;        }        ans=n;        for(int i=1;i<=m;i++){            scanf("%d%d",&a,&b);            int ra=root(a);            int rb=root(b);            if(ra==rb){                continue;            }            else{                ans--;                fa[ra]=rb;            }        }        printf("%d\n",ans);    }}


0 0
原创粉丝点击