数据结构 | Kruskal 重构树
Kruskal 重构树:维护图上两点间所有简单路径的最大边权的最小值 / 维护树上两点间路径的最大边权的数据结构。
(也可以维护图上两点间所有简单路径的最小边权的最大值 / 维护树上两点间路径的最小边权)
Kruskal 重构树:维护图上两点间所有简单路径的最大边权的最小值 / 维护树上两点间路径的最大边权的数据结构。
(也可以维护图上两点间所有简单路径的最小边权的最大值 / 维护树上两点间路径的最小边权)
线段树 (Segment Tree):用来维护区间信息的数据结构。可在 $O(\log N)$ 的时间复杂度内完成单点修改、区间修改、区间查询(区间和、区间最大值、区间最小值)等操作。
ST 表 (Sparse Table):对于可重复贡献问题,可在 $O(n\log n)$ 完成初始化,在 $O(1)$ 回答每个区间查询的数据结构。但是不支持修改数据。
可重复贡献问题:对于运算 $\star$,如果 $x\star x=x$,且 $\star$ 要满足结合律,则对应的区间询问是可重复贡献问题。符合这个性质的常见运算有 $\max,\min,\gcd$.
哈希表 (散列表, Hash Table):根据键而直接访问在内存储存位置的数据结构。
堆 (Heap):是计算机科学中的一种特别的完全二叉树,最高效的优先级队列。
字典树 (单词查找树, Trie, /ˈtraɪ/): 是一种有序树,用于保存关联数组,其中的键通常是字符串。