POJ2524

来源:互联网 发布:住宅成交数据 编辑:程序博客网 时间:2024/05/17 08:18

并查集模版,水题

#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N = 50005;int f[N];int n, m;void init() {    for (int i = 1; i <= n; i++)         f[i] = i; }int find(int x) {    return x == f[x] ? x : f[x] = find(f[x]);}void Union(int a, int b) {    int pa = find(a);    int pb = find(b);    if (pa != pb) {        f[pa] = pb;    }}int main() {    int t = 1;    while (scanf("%d %d", &n, &m) && n && m) {        init();           int a, b;        for (int i = 0; i < m; i++) {            scanf("%d %d", &a, &b);                 Union(a, b);        }          int cnt = 0;        for (int i = 1; i <= n; i++)            if (f[i] == i)                cnt++;        printf("Case %d: %d\n", t++, cnt);    }    return 0;}


0 0
原创粉丝点击