![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
文章平均质量分 64
rotate_
——记录被bug困扰的美好生活
展开
-
数据结构与算法——并查集
根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。当union将这个数并入一个类的时候,i 的祖先结点就不是它本身了,而是另一个j 属的类的祖先结点 也就是 将j的祖先结点赋值为i的祖先结点 pre[ i ] = pre[ j ] 这就是union的操作。也是一样,例如小昭和胡青牛,他们有共同的上级紫衫龙王,紫衫龙王有上级张无忌,殷野王上级有白眉鹰王,白眉鹰王上级有张无忌,所以他们全部都隶属于张无忌的部下,那么他们就知道对方是不是自己的队友。原创 2022-11-10 23:30:08 · 139 阅读 · 0 评论 -
并查集——社交集群
其实直接可以:每一个人用第一个兴趣编号作为代表,将一个人的兴趣编号用并查集和并起来,这样有相同兴趣的人就被分在了一个组,然后遍历每一个人,查找他的兴趣的父亲节点,然后用一个计数数组技术便可以得到每个圈子有多少人,不为零的个数就是圈子个数。题目的意思:一号有2 3 4兴趣 二号有 1 3 4 兴趣 三号有8 9 2兴趣,也就是并查集,拥有同一种兴趣的属于一个圈子,一号二号三号都是一个圈子的。首先在一行中输出不同的社交集群的个数。上面是另一个博主的思路,我一开始也想的复杂了,也就是没懂题目的意思;原创 2022-11-11 16:36:23 · 94 阅读 · 0 评论