这道理重要的想法就是利用并查集缩点,将所有相等的点缩成同一个点 因为如果不缩点,那么如果两个数相等,其他的数与他们中任意一个数有关系,就需要把相等的数的关系也都连上,也就是加边。这样十分复杂 我们又可以发现,如果缩点,因为每个点本身有rp值,所以缩成的点能排序的话,原先也可以。就是基于这个原理证明的 ...
分类:
其他好文 时间:
2020-02-24 20:39:58
阅读次数:
68
二分搜索树 6-1 为什么要研究树结构 树结构 为什么要有树结构? 树结构本身是一种天然的组织结构 高效 将数据使用树结构存储后,出奇的高效。 二分搜索树(Binary Search Tree) 平衡二叉树:AVL;红黑树 堆;并查集 线段树;Trie(字典树,前缀树) 6-2 二分搜索树基础 和链 ...
分类:
其他好文 时间:
2020-02-23 20:26:55
阅读次数:
82
一、技术总结 1. 这是一道并查集的题目,这里无非就是明白题目的含义,然后将套路用上基本上问题不大。 2. 一个是father数组用于存储父亲结点,isRoot用于存储根结点,如果题目需要,还可以建立一个course数组,用于存储,例如这个题目就是用于判断该该兴趣是否有人涉及。 3. findFat ...
分类:
其他好文 时间:
2020-02-23 16:27:02
阅读次数:
68
PAT 甲级 Advanced 1034 Head of a Gang (30) [图的遍历,BFS,DFS,并查集] ...
分类:
其他好文 时间:
2020-02-23 11:43:41
阅读次数:
55
有一个 $n \times m$ 矩阵,初态下全是 $0$。 如果两个相邻元素(四连通)相等,我们就说它们是连通的,且这种关系可以传递。 有 $q$ 次操作,每次指定一个位置 $(x_i,y_i)$ 把它替换为 $c_i$。 每次操作后求这个矩阵有多少个连通块。 $q \leq 2\times 10 ...
分类:
其他好文 时间:
2020-02-23 11:33:53
阅读次数:
68
一、并查集的定义 1. 并查集是一种维护集合的数据结构,它的名字中“并”、“查”、“集”。分别取自Union(合并)、Find(查找)、Set(集合)。 合并:就是合并两个集合 查找:判断两个元素是否在一个集合 那么并查集是用什么实现的,就是一个数组, 对于同一个集合来说只存在一个根结点,且将其作为 ...
分类:
其他好文 时间:
2020-02-23 00:08:03
阅读次数:
94
import numpy as np import os class DIS_JOIN(object): def __init__(self): ''' 并查集算法 拥有两个函数 一个是把某个元素放在某个集合中 另一个是返回一个list,包含所有集合和集合中所有的点 ''' self.Set = N ...
分类:
编程语言 时间:
2020-02-22 15:28:19
阅读次数:
79
题目:传送门 题意: 给你 n 条线段的两个端点, 然后有多次询问, 每次询问, 问你线段 x 和 线段 y 是否相交。 若线段 A 和线段 B 相交且线段 A 和线段 C 相交,那么线段 B 和线段 C 相交。 1 < n < 13 题解: 暴力求线段是否相交, 然后再跑个 Floyd 或者并查集 ...
分类:
其他好文 时间:
2020-02-21 16:34:06
阅读次数:
77
最近带权并查集这块比较薄弱,直接看食物链看不懂,就老实一步步来了。 有一个划分为N列的星际战场,各列依次编号为1,2,…,N。 有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。 有T条指令,每条指令格式为以下两种之一: 1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序, ...
像我这种根本不理解并查集内涵的人做这种题就很难受。。。一道题卡一天 ...
分类:
其他好文 时间:
2020-02-20 22:09:14
阅读次数:
62