首页 > 其他 > 详细

并查集模板

时间:2020-01-26 17:32:38      阅读:82      评论:0      收藏:0      [点我收藏+]

并查集

1.合并两个集合

2.查询两个数是否在一个集合

基本原理:

每个集合用一棵树来表示,树根的编号就是整个集合的编号,每个结点存储他的父节点,p[x]表示x的父节点

1.是否是一个集合 if( find(a)==find(b) )

2.合并两个集合 p[find(a)]=find(b) 

        static int p[]=new int[N];
        static int find(int x){ //返回x的祖宗结点+路径压缩
                if(p[x]!=x) p[x]=find(p[x]);
                return p[x];
        }

技术分享图片

 

并查集模板

原文:https://www.cnblogs.com/qdu-lkc/p/12234386.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!