![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
文章平均质量分 58
AC__dream
道阻且长,行则将至;行而不辍,未来可期!
展开
-
L2-010 排座位(并查集)
L2-010 排座位(并查集)原创 2023-03-14 10:07:52 · 117 阅读 · 0 评论 -
城市通电(kruscal)
那么接下来我们按照kruscal求解最小生成树的思想遍历按照权值从小到大遍历所有边,那么我们考虑一条边如果是在一个连通块内那么就不作考虑,如果其不在一个连通块内,那么我们先。,我们可以用一个连通块中建立发电站代价最小的点来作为根节点,这样会比较容易维护,至于输出的变量直接在过程中维护一下即可。,然后我们直接对这n+1个点跑一个kruscal即可,同理也是过程中维护输出量。我们建立一个虚拟原点0,然后在。原创 2023-03-11 20:02:25 · 110 阅读 · 0 评论 -
(蓝桥真题)网络分析(并查集+树上差分)
(蓝桥真题)网络分析(并查集+树上差分)原创 2023-03-05 19:44:17 · 116 阅读 · 0 评论 -
(蓝桥真题)推导部分和(图论+并查集+bfs/带权并查集)
蓝桥真题原创 2023-03-04 19:30:21 · 290 阅读 · 0 评论 -
2022杭电多校十 1004-Average Replacement(猜结论+并查集)
有n人,其中有m对朋友关系。朋友的朋友并不算是朋友,现在,每个人的帽子上都有一个整数,每一轮游戏中,每个人帽子上的整数都会变成他及其所有朋友的帽子上的整数的平均值,这个数可能不是整数,给定一个结论,当游戏次数足够多时,所有人的整数将会固定不变,求出这些最终值。原创 2022-08-21 08:51:32 · 831 阅读 · 0 评论 -
(L2-026)小字辈(带权并查集)
题目链接:PTA | 程序设计类实验辅助教学平台题目要求辈分最小的成员的编号,辈分之间的维护显然可以用带权并查集来实现,距离表示辈分,然后剩下的就是一个基本的带权并查集模板了,需要注意的是我们处理完所有的合并操作后需要再对所有点进行一次find操作,保证每个点的d数组都被完全更新,因为我们的find操作中带有更新距离的操作,每次find(x)操作只会更新x及其所有祖先的d数组,而不在这个范围内的数组则不会被更新,由于我们的merge操作并没有求出真实的d值,只是把他的d数组设置为了他的父节点+1,.原创 2022-04-22 10:11:19 · 330 阅读 · 0 评论 -
(天梯赛L3-003)社交集群(并查集)
题目链接:PTA | 程序设计类实验辅助教学平台分析:对题意进行简化,就是具有相同兴趣爱好的人一定在同一集合,我们按照兴趣爱好进行划分集合,每个集合的cnt数组代表在这个集合的人数(只有集合代表元素cnt数组中的值是有效个数,而集合中其他元素的cnt值只有在自己是一个独立集合的时候是有效的),我们读入每个人的兴趣爱好,并把每个人的所有兴趣爱好合并至一个集合(因为具有这些某个兴趣爱好的人都会与当前这个人属于一个集合,所以直接将他们兴趣爱好的集合合并即可),然后让这个集合的人数+1(这样可以保证最后总集原创 2022-03-21 18:17:57 · 174 阅读 · 0 评论 -
(校赛)排队(并查集+思维)
题目链接:OnlineJudge思路:我们把可以交换的两个点放入一个连通块,经过这样的原创 2022-03-07 21:17:18 · 222 阅读 · 0 评论 -
(POJ - 1456)Supermarket(并查集)
题目链接:1456 -- Supermarket原题意比较难理解,下面我给出一个简化版的理解方式:超市里有n个商品。第i个商品必须在保质期(第di天及之前)卖掉,若卖掉可让超市获得pi的利润,但是每天只能卖一件商品,现在你要让超市获得最大的利润,问最大的利润是多少,多组数据分析:贪心的思想,就是我们先把商品按照利润进行排序,同样是花费一天,能把利润高的商品卖掉就先把利润高的商品卖掉,但是在当前条件允许的情况下能多晚卖就多晚卖(为了给一些利润低但是保质期短的商品多提供一些时间),很明显这是一个正确的贪原创 2022-02-15 21:36:57 · 300 阅读 · 0 评论 -
(POJ - 1308)Is It A Tree?(树)
题目链接:1308 -- Is It A Tree?题意:多组输入,每次给你一些边,(0,0)是每次输出结尾标志,(-1,-1)是题目输出结尾标志,最后判断所给边是不是一棵树。这道题比较容易出错,一个是空节点也是一棵树,也就是直接输入0,0就是一棵树,第二种是节点未必连续,也就是说给了你一个节点是10,但是未必会有9这个节点,所以我们在过程中需要记录出现的节点都有哪些,其他就没什么了,直接用并查集进行判断就行下面是代码:#include<cstdio>#include<原创 2022-02-15 15:15:00 · 215 阅读 · 0 评论 -
(POJ - 1984)Navigation Nightmare(带权并查集)
题目链接:1984 -- Navigation Nightmare中文题意:有n个网格状的农田,每个农田之间有距离,会依次给出关系,在给出关系后询问两个农田之间的曼哈顿距离是多少?(点(x1,y1)和点(x2,y2)的哈密顿距离是|x1-x2|+|y1-y2|)若无法判断则输出-1。这道题目是用带权并查集来解决的,两个点的哈密顿距离能否计算取决于他们是否具有相同的参考系,也就是说他们是否在一个集合中,我们可以通过集合中每个点与该集合代表元素的关系来确定集合内任意两点的相对位置。由于这是一个二原创 2022-02-15 14:15:00 · 329 阅读 · 0 评论 -
(POJ - 2912)Rochambeau(带权并查集+枚举)
题目链接:2912 -- Rochambeau题意:n个小伙伴进行猜拳有戏,除了一个比较聪明的家伙以外,其他人只会出单一的一种,给出m中猜拳的结果,要求找出那个比较聪明的小伙伴序号,并且输出在第几次猜拳可以确定。(注意<,>,=前后可能有空格)分析:每个人只能有三种选择,所以这道题与食物链那道题目比较像,如果对带权并查集不了解的小伙伴可以先看下那道题,在这附上博客地址:POJ - 1182 食物链(带权并查集)_AC__dream的博客-CSDN博客a首先可以肯定的是除了原创 2022-02-14 18:41:50 · 437 阅读 · 0 评论 -
POJ - 1733 Parity game(离散化+扩展域并查集)
题目:Now and then you play the following game with your friend. Your friend writes down a sequence consisting of zeroes and ones. You choose a continuous subsequence (for example the subsequence from the third to the fifth digit inclusively) and ask him, w原创 2022-01-18 12:41:38 · 42 阅读 · 0 评论 -
POJ - 1182 食物链(扩展域并查集)
题意:动物王国中有三类动物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句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。1) ...原创 2022-01-18 11:32:00 · 41 阅读 · 0 评论 -
POJ - 1182 食物链(带权并查集)
题目:动物王国中有三类动物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句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。1) ...原创 2022-01-18 09:54:45 · 248 阅读 · 0 评论 -
True Liars (POJ - 1417)带权并查集+dp路径
题目:After having drifted about in a small boat for a couple of days, Akira Crusoe Maeda was finally cast ashore on a foggy island. Though he was exhausted and despaired, he was still fortunate to remember a legend of the foggy island, which he had heard f原创 2022-01-17 19:42:15 · 435 阅读 · 3 评论 -
(HDU-7136)Jumping Monkey(并查集+建树)
题目链接:Problem - 7136 (hdu.edu.cn)题目翻译:有一棵树有n个节点和n个−1使所有节点连接的边。每个节点i具有不同的权重ai。一只猴子在树上跳。在一次跳跃中,猴子可以从节点u跳到节点v,当且仅当av是从节点u到节点v的最短路径上所有节点中最大的节点时。一旦无法到达更多节点,猴子将停止跳跃。对于每个整数k∈[1,n],计算猴子从节点k开始可以到达的最大节点数。分析:考虑点权最大的那个结点(设为 ),显然不管从其他哪个结点开始跳一次,都可以到达u,且不能越过u,原创 2021-10-12 20:41:37 · 162 阅读 · 0 评论 -
(HDU - 2473)Junk-Mail Filter(并查集删点)
题目链接:暑前训练 前缀和 + 差分 + 快速幂 + 并查集及其应用 - Virtual Judge (vjudge.net)这道题目的题意很简单,两个操作,一个操作是合并两个集合,另一个操作就是把某点从集合中分离,无论是合并集合也好,还是查询两个元素是否在一个集合内也好,这都是并查集的基本操作,最关键的操作就是怎样把一个点从元素中分离出去,这时候有同学可能就会说:这不很简单吗,直接将要分离的元素的父亲节点改变不就行了吗?比如说,1,3,5,6在一个集合中,集合代表元素为5,那么我们要把1,3,6三个元原创 2021-10-09 19:49:02 · 128 阅读 · 0 评论 -
克里斯博弈(并查集+思维)
题目链接:OnlineJudge对于输出不可能的情况,也就是所有的道路都被摧毁,这个我们直接用一个vis数组记录即可,我在这就不多做说明了。主要是考虑每次删一条边,然后问我们删除后边的两端还是否连通,遇到删边的问题我们通常逆向思考,考虑倒着加边,如果加边前两点就已经连通了,说明原来正着删边后边的两端依旧是连通的,而考虑两点是否连通我们就可以用并查集来写,详细说明见代码:#include<iostream>#include<cstring>#include<cst.原创 2021-09-12 20:04:27 · 85 阅读 · 0 评论 -
(HDU - 1811 )Rank of Tetris(拓扑+并查集)
题目链接:Problem - 1811 (hdu.edu.cn)这道题目综合考察了拓扑序列和并查集,刚看到这道题目时,我的想法是对于rating不同的人我们直接按照给定的rating值大小进行连边,而对于rating值相同的人我们根据其人品值进行连边,但这样的想法是错误的,比如给出 3>4,3=5,这样就会有4和5分别向3连一条边,可以确定的是3大于4以及3大于5,但是并未确定4与5的关系,由于5=3,故应该有5大于4,所以我们利用之前的想法并不能很好地处理这种问题,那我们应该怎么做呢?对于ra.原创 2021-09-11 13:23:06 · 96 阅读 · 0 评论