标签:
今天在做杭电BestCoder30期题目的时候遇到了问题,于是看了解决方案说是要用到并查集,于是就知道了这个神奇的东西。
简单介绍一下并查集:
并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示。
int pre[1000 ];
int find(int x)
{
int r=x;
while ( pre[r ] != r )
r=pre[r ];
int i=x , j ;
while( i != r ) //路径压缩,为了节省后续节点的查找时间
{
j = pre[ i ];
pre[ i ]= r ;
i=j;
}
return r ;
}
void union(int x,int y) //合并两个集合,同时也是在初始时构造并查集的函数
{
int fx=find(x),fy=find(y);
if(fx!=fy)
pre[fx ]=fy;
}
标签:
原文地址:http://www.cnblogs.com/daimadebanyungong/p/4324482.html