输入N个数,找每个数的前驱和后继。如果没有前驱或后继,输出-1; 思路: 如果有右子树,则右子树的最小值为当前节点的后继;否则后继为当前节点往祖先搜索,第一次是左孩子的节点的父亲的值; 如果有左子树,则左子树的最大值为当前节点的前驱;否则前驱为当前节点往祖先搜索,第一次是右孩子的节点的父亲的值; ...
分类:
其他好文 时间:
2019-01-04 21:59:29
阅读次数:
182
还是计算几何, 多边形的核可以这样理解:这个核为原多边形内部的一个多边形,站在这个叫核的多边形中,我们能看到原多边形的任何一个位置。 算法步骤如下: 1.根据原多边形最大和最小的x,y初始化核多边形,就是个矩形。 2.计算多边形当前处理的点的凹凸性。 3.用当前点与其后继点构成直线,判断当前点的前驱 ...
分类:
其他好文 时间:
2019-01-01 14:50:37
阅读次数:
203
题目描述 树是一种很常见的数据结构。 我们把N个点,N-1条边的连通无向图称为树。 若将某个点作为根,从根开始遍历,则其它的点都有一个前驱,这个树就成为有根树。 对于两个树T1和T2,如果能够把树T1的所有点重新标号,使得树T1和树T2完全相 同,那么这两个树是同构的。也就是说,它们具有相同的形态。 ...
分类:
其他好文 时间:
2019-01-01 11:43:20
阅读次数:
109
学到了新姿势,splay维护括号序列(听说是伪ETT(euler-tour-tree 欧拉搜索树)?) 大型工业题 注意点:1:结构改变了以后编号变成不连续的了,要找前驱和后继 2:就算lazy也需要先把当前点改了,不然计算出锅 ...
分类:
其他好文 时间:
2018-12-31 14:45:00
阅读次数:
170
题目描述 题解: 看到网上几乎全是树套树, 我就写了个整体二分。 其中操作1,2,3一般整体二分都能做到。 对于前驱,我们只需要在线段树中多维护区间最大值即可; 对于后继…… 通通取反后再跑一遍查询前驱即可。 然后迷之卡空间。 最后迷之卡过。 代码: ...
分类:
其他好文 时间:
2018-12-31 11:22:14
阅读次数:
187
定义双向链表 双向链表只是在原来的单链表中加入了一个前驱指针,因此,在双链表中执行按值查找和循秩查找与单链表是相同的。但在插入和删除操作中和单链表有着较大的不同。此外双链表还能很方便的找到其前驱结点,因此,除了找到插入结点外,插入和删除结点的时间复杂度仅为$O(1)$。 双向链表的尾插法初始化: 双 ...
分类:
其他好文 时间:
2018-12-29 13:53:18
阅读次数:
151
线性表 线性表(List):由零个或多个数据元素组成的有限序列。 线性结构是最简单,也是最常用的数据结构之一。 线性结构的特点是:在数据元素的有限集中,除第一个元素无直接前驱,最后一个元素无直接后驱外,每个元素数据有且仅有一个直接前驱元素和一个直接后续元素。 线性表 顺序存储结构(Java代码实现) ...
分类:
其他好文 时间:
2018-12-26 20:16:22
阅读次数:
165
"题目链接" 题解 不包含所有颜色 就强制不选一个颜色 图中圆点颜色相同 矩形越大,包括的点一定不比其一小部分少 如图所示,最大矩形只有3种 离散化$x$坐标 然后按$y$排序 每次取出颜色的前驱和后继, 算出所围矩形内点的个数,取$max$ 对于第$3$种,扫一遍$set$即可 Code ...
分类:
其他好文 时间:
2018-12-20 16:57:40
阅读次数:
207
一:二叉查找树可以高效的实现查找,插入删除的操作,这些map也可以实现。那么二叉查找树有什么优势? 删除是从右子树中找到最小的数,替换被删除的元素。 二叉查找树的其它操作: 可以快速的找到最大节点,最小节点,前驱节点,后继节点。 中序遍历可以输出有序的数据序列,时间复杂度是O(N) 支持重复数据的二 ...
分类:
其他好文 时间:
2018-12-18 15:53:30
阅读次数:
332
0.目录 1. "循环链表的实现" 2. "双向链表的实现" 3. "小结" 1.循环链表的实现 什么是循环链表? 概念上 1. 任意数据元素都有一个前驱和一个后继 2. 所有的数据元素的关系构成一个逻辑上的环 实现上 1. 循环链表是一种特殊的单链表 2. 尾结点的指针域保存了首结点的地址 循环链 ...
分类:
其他好文 时间:
2018-12-16 15:51:16
阅读次数:
152