ACM乐园
Love Me,Love My Code!
posts - 53,  comments - 24,  trackbacks - 0
http://acm.hdu.edu.cn/showproblem.php?pid=1213

刚睡觉起来,一不注意把parent初始化为0了,惭愧呀。。。
#include <iostream>

using namespace std;

const int M=1001;
int parent[M];
int uffind(int i)
{
    
int j,temp;
    
for(j=i;parent[i]>=0;i=parent[i]);
    
while(j!=i)
    {
        temp
=parent[j];
        parent[j]
=i;
        j
=temp;
    }
    
return i;
}

void ufunion(int i,int j)
{
    
int temp;
    i
=uffind(i);
    j
=uffind(j);
    
if(i==j)
        
return;
    temp
=parent[i]+parent[j];
    
if(parent[i]<=parent[j])
    {
        parent[i]
=temp;
        parent[j]
=i;
    }
    
else
    {
        parent[j]
=temp;
        parent[i]
=j;
    }
}

int main()
{
    
int t,m,n,i,j,res;
    cin
>>t;
    
while(t--)
    {
        memset(parent,
-1,sizeof(parent));
        res
=0;
        cin
>>n>>m;
        
while(m--)
        {
            cin
>>i>>j;
            ufunion(i,j);
        }
        
for(i=1;i<=n;i++)
            
if(parent[i]<0)
                res
++;
        cout
<<res<<endl;
    }
    
return 0;
}


posted on 2011-09-15 14:12 大大木马 阅读(85) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用链接

留言簿(1)

随笔档案(53)

文章档案(2)

搜索

  •  

积分与排名

  • 积分 - 62441
  • 排名 - 353

最新评论

阅读排行榜

评论排行榜