![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
HHeyanjie
抱怨没有用,一切靠自己
展开
-
逆向并查集
题目: 题目. 题意:有n个战舰(0~n-1),每个战舰有一个战斗力,然后输入一个m表示m对战舰联合,然后输入一个q表示q次查询。接下来q行有两种输入:1、query x 表示查询和x战舰联合对战舰中攻击力最大的战舰的编号(如果战斗力相同输出小的编号),如果没有就输出-1. 2、destroy x y 破坏x战舰和y战舰的关系,不改变其他战舰关系。 知道这题的思路的时候感觉发现了新大陆,太强了。。。 思路:如果直接先把m组关系处理完然后正向的操作q次操作,会很难处理destroy的操作,因为既要保持已有的关原创 2020-10-28 19:28:59 · 293 阅读 · 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-10-27 15:08:58 · 252 阅读 · 1 评论 -
2020牛客暑期多校训练营(第八场)
I题 Interesting Computer Game. 题意: T组测试数据,每组输入一个n,然后输入n行,每行输入a b,可以选这两个数中没有选过的数,最多能选几个数。 思路:数据范围1e9,先离散化,起初每个数分别处于一个集合,输入a和b之后,如果a和b不相等,就合并a和b的集合,如果相等,就相当于自环,答案等于每个集合min(边数,点数) 之和。 并查集主要就是路径压缩和集合合并 #include <bits/stdc++.h> #include <tr1/unordered原创 2020-08-04 09:47:27 · 280 阅读 · 0 评论