摘要:
定义:树中距离最远的两个点的距离 1.双bfs求直径,任意找一个点O,找到离O距离最远的点P,再求出离P最远的点的距离就是树的直径 int bfs(int u) { mesmet(d, -1, sizeof d); int hh = 0, tt = 0; d[u] = 0, q[0] = u; wh 阅读全文
摘要:
伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由丹尼尔·斯立特Daniel Sleator 和 罗伯特·恩卓·塔扬Robert Endre Tarjan 在1985年发明的在伸展树上的一般操作都基于伸展操作:假设想要对一个二叉查找树 阅读全文
摘要:
# 【模板】文艺平衡树 ## 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列。 其中需要提供以下操作:翻转一个区间,例如原有序序列是 5 4 3 2 1,翻转区间是 [2,4] 的话,结果是 5 2 3 4 1。 ## 输入格式 第一行两个正整数 n,m,表示序列长度与操作个数 阅读全文
摘要:
FHG无旋treap能做大部分splay能完成的操作,而且代码比较短,思路比较splay来说也更加易懂一些,是性价比很高的数据结构,推荐入手,视频可以看b站Agoh大佬的视频,讲的很清晰,但是splay也是要学的,不是说学了FHGtreap就可以完全替代splay,splay的灵活度还是高于FHGt 阅读全文
摘要:
上一篇文章讲了线段树分裂和合并的模板题,下面加强一下理解 题目链接:https://www.luogu.com.cn/problem/P4556 深绘里一直很讨厌雨天。 灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。 虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座 阅读全文
摘要:
前置知识点:线段树,动态开点 对于一些题目,可能两颗线段树要用到各自的节点信息,这时候线段树合并和分裂就可以完美的解决这类问题,比如说x树没有y中的一些节点,就可以直接利用y的节点信息,合并两颗线段树的时间复杂度是mlogm的。 分裂是将一颗线段树的一部分区间拿出来单独作为一颗线段树,拿掉这些区间后 阅读全文