并查集
_Ark
这个作者很懒,什么都没留下…
展开
-
CSP2019 D1T3 树上的数 (贪心+并查集)
题解因为博主退役了,所以题解咕掉了。先放个代码CODE#include<bits/stdc++.h>using namespace std;const int MAXN = 2005;int n, ps[MAXN], ans[MAXN], fir[MAXN], to[MAXN<<1], nxt[MAXN<<1], cntE, Mn;int f[MA...原创 2019-11-23 14:06:07 · 348 阅读 · 2 评论 -
BZOJ1997 HNOI2010 平面图判定 planar (并查集判二分图)
题意判断一个存在哈密顿回路的图是否是平面图。n≤200,m≤10000n\le200,m\le10000n≤200,m≤10000题解如果一定存在一个环,那么连的边要么在环里面要么在外面。那么把在同侧会矛盾的边之间连边,如果是一个二分图就是平面图。有问题的是边数是O(m2)O(m^2)O(m2)的。但是可以发现当m>n∗3−6m>n*3-6m>n∗3−6的时候一定形成不...原创 2019-10-21 22:05:45 · 251 阅读 · 0 评论 -
【并查集】亲戚
一、题目描述亲戚(relation.cpp)时间限制: 1 Sec 内存限制: 64 MB题目描述若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易。 现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 我们规定:如果x和y是亲戚,y和z是亲戚,那么x和z也是亲戚;如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入第一行:三个整数n,m,p...原创 2016-10-24 13:39:51 · 1092 阅读 · 0 评论 -
【并查集】并查集详解
算法熟记-并查集1. 简述 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 需要实现的操作有:合并两个集合,判断两个元素是否属于一个集合。 这里介绍的主要是普通的并查集,很多情况下使用的并查集是需要扩展的,根据使用情况的不同,有很多差别,这里仅仅是最基本的算法。2. 复杂度 T...转载 2016-10-22 21:26:18 · 823 阅读 · 0 评论 -
Luogu P3940 分组 (带权并查集动态判二分图)
题意传送门题解兔子越多限制越大,所以字典序最小就肯定是最后一组尽量多。从后往前枚举加兔子,如果矛盾就分组。中间不能出现奇环,只能是一个二分图,用带权并查集动态判。要特判a+a=k^2的情况。CODE#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = (1&...原创 2019-09-07 17:05:52 · 220 阅读 · 0 评论