码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1213 -how many tables

时间:2014-07-24 21:23:36      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   数据   io   for   re   

凭记忆打的代码,在学数据结构的时候,用下标索引的方法进行合并,即将相同集合中的数据归为一颗树中的节点,当进行判断的时候,分别找父亲,若是同一个父亲就不用归并,否则就归并。用数组就可以了。

#include<iostream>
using namespace std;
int index[1001];
int getfather(int n)
{

    while(index[n] != n)
    {
        n = index[n];

    }
    return n;
}
int main()
{

    int m; cin >> m;
    while(m--)
    {
       int peo,pair;;
       cin >> peo >> pair;

       for(int i = 1;i <= peo;i++)
       {
           index[i] = i;

       }
       int fathera;
       int fatherb;
       for(int j = 0;j < pair;j++)
       {
           int a,b;
           cin >> a >> b;

           fathera = getfather(a);
           fatherb = getfather(b);
           if(fathera != fatherb)
           {

               index[fatherb] = fathera;
           }

       }

       int count = 0;
       for(int i = 1;i <= peo;i++)
       {
           if(i == index[i])
           {

               count++;
           }

       }
       cout << count << endl;

    }
    return 0;
}

hdu 1213 -how many tables,布布扣,bubuko.com

hdu 1213 -how many tables

标签:style   blog   color   os   数据   io   for   re   

原文地址:http://www.cnblogs.com/hhhhhhhhhhhhhhhhhhhhhhhhhhh/p/3865823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!