并查集
少年白马
向阳奔跑,逆风成长
展开
-
牛客 树上行走(并查集的巧妙应用)
树上行走 题目描述 牛牛苦练武功绝学——轻功水上漂,最终没有练成,但是他学会了在树上行走的本领。 这天,牛牛落入了敌人的陷阱,身后有巨石追击,面前有n个点,n-1条边连成一张连通图(一棵树),现在牛牛必须立马选择进入这张图中,但是牛牛发现,这张图有两种不同的点,一旦进入一个点,所有与该点不同类型的点都会消失(相连的边也会消失),牛牛只能走到有边相连的点,牛牛想要自己尽量有更多的点可以活动,那么他可以进入哪些点? 题目分析:因为在补其他题目的时候不小心看到这个题目考察的是并查集,但是不论我怎么想都不知道该怎么原创 2020-10-24 11:57:20 · 384 阅读 · 2 评论 -
杭电 1272 (并查集)
Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路。比如下面的例子,前两个是符合条件的,但是最后原创 2020-08-10 20:05:50 · 166 阅读 · 0 评论 -
牛客 关押罪犯 (并查集+贪心)
题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c 的冲突事件。 每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到S 城Z 市长那里。公务繁忙的Z 市长只会去看列表中的第一个事原创 2020-06-28 20:13:39 · 333 阅读 · 0 评论 -
牛客 程序自动分析 (离散化+并查集)
程序自动分析并查集+快速排序+去重+二分查找+离散化离散化(map)+并查集三级目录 题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设 ????1, ????2, ????3, ⋯ 代表程序中出现的变量,给定 ???? 个形如 ???????? = ???????? 或 ???????? ≠ ???????? 的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件原创 2020-06-28 01:35:59 · 214 阅读 · 0 评论 -
牛客 食物链(最经典的并查集)
食物链三倍空间并查集带权并查集 题目描述 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是“1 X Y”,表示X和Y是同类。 第二种说法是“2 X Y”,表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则原创 2020-06-22 20:52:00 · 512 阅读 · 2 评论 -
牛客 经商(并查集+01背包)
小d是一个搞房地产的土豪。每个人经商都有每个人经商的手段,当然人际关系是需要放在首位的。 小d每一个月都需要列出来一个人际关系表,表示他们搞房地产的人的一个人际关系网,但是他的精力有限,对应他只能和能够接触到的人交际。比如1认识2,2认识3,那么1就可以接触3进行交际,当然1和2也可以交际。 小d还很精明,他知道他和谁交际的深获得的利益大,接下来他根据自己的想法又列出来一个利益表,表示他和这些人交际需要耗用多少精力,能够获得的利益值为多少。 小d想知道,他在精力范围内,能够获得的利益值到底是多少。 设定小d原创 2020-06-19 01:29:54 · 297 阅读 · 0 评论 -
并查集(详细篇)
并查集并查集的分析并查集例题hdu1213poj1611 并查集的分析 并查集是一种非常精巧而且实用的数据结构,它主要用于处理一些不相交集合合并的问题,经典例子有联通子图,最小生成树之克鲁斯卡尔算法和最近公共祖先等… 常见操作 合并两个集合,将一个集合的根节点作为另一个集合的根节点 查找某个元素属于哪个集合 判断两个元素是否属于同一集合,只需要判断他们的根节点是否相同即可 代码 并查集代码一般有三个函数,他们分别是 初始化函数初始化每个点为独立的集合,一般来说初始化都是写在主函数里面 f原创 2020-05-13 09:35:57 · 289 阅读 · 0 评论