news 2026/6/17 13:16:21

扩展域并查集(种类并查集)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
扩展域并查集(种类并查集)

理解思想

一.团伙

给定若干满足如下两条的关系,求会构成多少个团伙:

为朋友。

为敌人。

普通并查集维护朋友关系依靠的是朋友关系具有传递性,即朋友的朋友还是朋友。但是,敌人的敌人是朋友并不满足上述传递性,因此需要想办法将问题转化为满足传递性。这就是扩展域并查集维护的问题方法。

每个人存在两种关系,将两种关系分为两个集合:

朋友集(

)。

敌人集(

)。

对于每种关系:

如果

是朋友,就将

加入

的朋友集,即操作:

//将y加入x的朋友集(x)

add(x,y);

如果

是敌人,就将

加入

的敌人集,将

加入

的敌人集,即操作:

//分别将x,y加入对方的敌人集

add(x+n,y);//x的敌人集(x+n)

add(y+n,x);//y的敌人集(y+n)

这样实际上利用了:

敌人的敌人就是朋友这一性质,将无法维护(无法合并)的敌对关系

,换成了敌人与敌人间的朋友关系

二.食物链

给定若干满足如下三条的关系,求有多少条件不合法:

为同类。

,则有

每个人存在三种关系,将三种关系分为三个集合:

同类集(

)。

可吃集(

)。

被吃的集(

),后面简称为被吃集。

注意:拥有多种关系时,要进行关系传递。如

同类,

能吃的

也能吃。

对于两种情况:

如果

是同类,就将

加入

的同类集,将

能吃的加入

的可吃集,将吃

的加入

的被吃集,即操作:

add(x,y);//将y加入x的同类集(x)

add(x+n,y+n);//将y可吃的加入x的可吃集(x+n)

add(x+2*n,y+2*n);//将吃y的加入x的被吃集(x+2n)

如果

,就将

加入

的可吃集,将

加入

的被吃集,将

加入

的被吃集(根据关系

),即操作:

add(x+n,y);//将y加入x的可吃集(x+n)

add(y+2*n,x);//将x加入y的被吃集(y+2n)

add(x+2*n,y+n);//将y+n加入x的被吃集(x+2n)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 6:07:42

Spring Boot快速集成MiniMax、CosyVoice实现文本转语音

在一些需要高质量文本转语音(TTS)的场景中(比如:有声书配音、播客等)。之前介绍的EdgeTTS方案可能效果没有那么好。此时就比较推荐使用 MiniMax、CosyVoice这些提供的音色,这些音色的效果会更加拟人、逼真&…

作者头像 李华
网站建设 2026/6/17 19:16:12

逆向提示法:让大模型输出从平庸到专业的5步技巧

文章介绍"逆向提示"技巧,通过提供满意样例让模型反推提示词配方,解决AI内容同质化问题。该方法提炼语气、节奏、结构等要素,形成可复用模板,显著提升内容质量与一致性。作者提供社媒文案、产品描述等多场景应用案例&…

作者头像 李华
网站建设 2026/6/13 22:48:04

算法分析--基数排序

时间复杂度 O(KN)线性高位优先(不好)先按照高位升序排序,依次进行下去,直到排到最低位。image因为高位有一个分组的动作,在每个组里面对低位再排序。可以用递归。实际上,完全可以用低…

作者头像 李华
网站建设 2026/6/15 16:37:12

UVa 10641 Barisal Stadium

题目描述 孟加拉板球控制委员会决定在巴里萨尔建造一座新的国际板球场。该体育场形状为凸多边形,需要在外部安装泛光灯以便在灯光下比赛。每个泛光灯可以照亮体育场的某些边,建造每个灯需要一定成本。 照亮条件 :一条边被某个灯照亮&#xff…

作者头像 李华
网站建设 2026/6/17 23:29:55

AgentScope深入分析-设计模式与架构决策分分析

设计的精髓:设计模式与架构决策分析 摘要 AgentScope 的设计体现了深厚的工程智慧。本文将深入分析框架中使用的设计模式、架构决策,以及这些设计背后的考量。你会发现,框架大量使用了模板方法模式、策略模式、观察者模式、元类模式等经典设计…

作者头像 李华
网站建设 2026/6/17 19:53:26

MySQL的这6大雷区,大部分人都会踩中!

苏三的工作内推群为什么MySQL雷区如此之多?在深入具体雷区之前,我们先聊聊为什么MySQL这么容易踩坑。这背后有几个深层次原因:看似简单:MySQL语法简单,入门容易,让很多人低估了它的复杂性默认配置坑多&…

作者头像 李华