1、树的简介 树结构本身是一种天然的组织结构 计算机文件夹 家谱 图书馆图书分类 公司职工 将数据使用树结构存储后,出奇的高效 2、树的分类 二分搜索树(Binary Search Tree) 平衡二叉树 AVL 红黑树 堆 并查集 线段树 Trie (字典树,前缀树) 3、二叉树简介 一个元素具有 ...
分类:
其他好文 时间:
2020-06-11 19:47:18
阅读次数:
55
并查集就是一个可以连通一块东西的工具。 基础: 这么理解吧,有一堆亲戚,每次给你两个人,告诉你他们是亲戚,最后任意给你两个人,问他们是不是亲戚。 这个时候,并查集就大显神通了。我们可以每次输入两个数,如果这两个数不在一块,把这两个数连接起来,到了最后,不就是变成了一棵树了吗?最后查询时,每次看他们是 ...
分类:
其他好文 时间:
2020-06-11 19:33:15
阅读次数:
42
题意: 给你一个$n\times m$的网格图,Q组询问,每次询问删掉第$[l_{i},r_{i}]$列的所有点后这张图的MST(最小生成树)。 $n\leq 100,m,Q\leq 10000$。 题解: 平时我们求最小生成树都是用Kruskal:把边排个序依次加入,用并查集合并。 但其实还有一种 ...
分类:
其他好文 时间:
2020-06-11 10:35:27
阅读次数:
57
Bug有两种性别,异性之间才交往, 让你根据数据判断是否存在同性恋,输入有 t 组数据,每组数据给出bug数量n, 和关系数m, 以下m行给出相交往的一对Bug编号 a, b。只需要判断有没有,按题目要求输出。 思路:我们开一个两倍的数组,存上对应的关系。 例如:有n个bug,其中(2, 3),(3 ...
分类:
其他好文 时间:
2020-06-09 23:54:26
阅读次数:
104
leetcode 每日一题 https://leetcode-cn.com/problems/satisfiability-of-equality-equations/ 思路:并查集 先把所有==合并,再将所有 !=查找。如果是同一个父亲就return false 。 class Solution: ...
分类:
其他好文 时间:
2020-06-09 14:51:13
阅读次数:
53
#include <bits/stdc++.h> using namespace std; #define MAX 100 class UnionSet{ private: int data[MAX+1];//即上级数组 public: UnionSet(int len){ for(int i=1;... ...
分类:
其他好文 时间:
2020-06-06 21:25:48
阅读次数:
62
题目链接 #题目大意 有n个编号为0~n的物品,并且有两个操作,分别是将两个物品合并在一个集合里和把一个物品从集合里取出来,问最后有多少个集合。 #解题思路 本题主要是如何把物品从集合中取出,可以设立一个与原物品编号不同的点作为辅助点。这样挂在同一个辅助点的物品都是属于同一个集合的,而挂在不同辅助点 ...
分类:
其他好文 时间:
2020-06-04 14:01:12
阅读次数:
52
本题的关键是要知道图论中的一个原理:无向图中, n个结点 至少需要 n-1条边,才能使各个结点相连。 有两种解法: 1.用递归遍历的方式,计算有多少个独立的连通的部分,我称为“簇”。需要移动的边就是 簇的个数减1。 2.使用并查集,计算有几个联通部分,有几条多余的边。如果多余的边小于联通部分,返回- ...
分类:
Web程序 时间:
2020-06-03 17:36:29
阅读次数:
81
并查集(Disjoint Sets),直译即不相交集。 等价关系 离散数学中对等价关系的定义:满足自反性、对称性和传递性的关系。 集合A,?(a,b),a,b∈A,满足aRb,则称R为A上的关系,若R满足以上三种性质,则为等价关系。 数学上的定义不必过多解释,只需知道,等价关系是用来对集合中的元素分 ...
分类:
编程语言 时间:
2020-06-01 20:37:19
阅读次数:
62
题意 bzoj 做法 考虑插入$[l,r]$ 在线段树内查询包含$l/r$的,到达一个节点,将节点集合与其合并,仅保留该点(带权并查集) 将$(l,r)$内插入线段树,每个节点维护一个集合 考虑查询$a\longrightarrow b$ 若不在一个集合内,还有一种可能就是$a$被$b$的集合包含 ...
分类:
其他好文 时间:
2020-05-31 18:18:16
阅读次数:
71