数据结构 —— 并查集
文章平均质量分 52
数据结构 —— 并查集
c4Lnn
这个作者很懒,什么都没留下…
展开
-
2021牛客寒假算法基础集训营4 F. 魏迟燕的自走棋
链接 https://ac.nowcoder.com/acm/contest/9984/F 题意 思路 代码 #include <bits/stdc++.h> #define SZ(x) (int)(x).size() #define ALL(x) (x).begin(),(x).end() #define PB push_back #define EB emplace_back #define MP make_pair #define FI first #define SE second us原创 2021-02-21 19:58:19 · 133 阅读 · 0 评论 -
牛客练习赛74 D. CCA的图
链接 https://ac.nowcoder.com/acm/contest/9700/D 题意 无向连通图,规定只能走权值在 [L,R][L , R][L,R] 内的边 求在 L,RL,RL,R 分别等于多少时,可以顺利从 sss 到达 ttt,要求 LLL 尽可能大,在 LLL 最大的情况下 RRR 尽可能小 思路 从大到小枚举边,用并查集维护点之间连通关系,当 sss 与 ttt 连通时,当前边权值即为 LLL 再枚举权值大于等于 LLL 的边,用同样的方法确定 RRR 代码 #include <原创 2021-02-07 17:17:35 · 106 阅读 · 0 评论 -
ZOJ 3261. Connections in Galaxy War
链接 https://zoj.pintia.cn/problem-sets/91827364500/problems/91827368062 题意 nnn 个点,每个点都有权值,给出 mmm 条双向边,并有 qqq 个操作 操作 destroy:断开 x,yx,yx,y 之间的边 操作 query:询问与 xxx 连通的点(不包括 xxx)中点权最大并且标号最小的点 思路 先枚举所有操作,记录所有要断开的边,再将所有操作完后没有断开的边建立 逆向枚举q个操作,如果遇到 destroy,则说明在此操作之前这条原创 2020-08-17 13:01:32 · 99 阅读 · 0 评论 -
POJ 2912. Rochambeau
链接 http://poj.org/problem?id=2912 题意 nnn 个人进行猜拳,除了一个聪明的人外,其他人只会出单一的一种,给出 mmm 种猜拳的结果,要求找出那个比较聪明的人序号,并且输出在第几次猜拳可以确定 思路 因为数据范围很小,所以可以枚举每个人是聪明的人的情况,接着枚举不包含此人的猜拳结果,通过边带权并查集维护关系,因为聪明的人只有一个,所以如果遇到矛盾的情况就说明在不包含此人的情况下有聪明的人,说明此人不是聪明的人,结束枚举,排除此人是聪明的人 枚举完成后 如果排除的人大于 n−原创 2020-08-14 22:53:30 · 99 阅读 · 0 评论 -
POJ 1984. Navigation Nightmare
链接 http://poj.org/problem?id=1984 题意 有 nnn 个农田,mmm 个关系 每个关系给出 bbb 到 aaa 的曼哈顿距离以及 bbb 对 aaa 的方向(正南或正北或正西或正东) 有kkk 次询问,问在给出前 ccc 个关系后能否计算出 aaa 至 bbb 的曼哈顿距离距离,能就输出曼哈顿距离距离,不能输出 −1-1−1 思路 因为求的是曼哈顿距离并且方向为正南或正北或正西或正东,所以我们可以用并查集维护有关系的所有点,并建立边权来维护每个点的坐标(根的坐标为 (0,0)原创 2020-08-14 01:05:59 · 69 阅读 · 0 评论 -
POJ 1417. True Liars
代码 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<climits> #include<string> #include<vector> #include<stack> #include<queue> #include<deque&g原创 2020-08-13 20:50:06 · 200 阅读 · 0 评论