[HDU-1213]How Many Tables

来源:互联网 发布:d3.js可视化 编辑:程序博客网 时间:2024/06/02 02:45




#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<vector>#include<stack>#include<queue>#include<map>using namespace std;const int maxn = 1000 + 10;int parent[maxn];int ans;int GetParent(int a) {    if( parent[a] != a ) {        parent[a] = GetParent( parent[a] );    }    return parent[a];}void Merge(int a, int b) {    int pa = GetParent( a );    int pb = GetParent( b );    if( pa == pb ) {        return ;    }    ans--;    parent[pb] = pa;}int main() {    int T;    cin >> T;    while( T-- ) {        int N, M;        cin >> N >> M;        for(int i=1; i<=N; i++) {            parent[i] = i;        }        ans = N;        while( M-- ) {            int a, b;            cin >> a >> b;            Merge( a, b );        }        cout << ans << endl;    }    return 0;}