摘要:
基本概念 树 定义:树是一个连通且无环的简单无向图。 一个 $n$ 树有以下三个特点: 联通。 无环。 $n-1$ 条边。 上面任意两个条件满足都可以得出这个图是一个树。 由此我们还可以得到这个结论: 树中任意两个点有且只有一条简单路径。 生成树 生成树指的是在一个无向连通图中包含所有图中节点,并且 阅读全文
摘要:
RMQ问题 RMQ(Range Minimum/Maximum Query)问题是指多次查询某个范围内的最大最小值(或极值),比如对一个序列多次查询区间的最大最小值。 设范围内共有 $n$ 个元素,查询 $m$ 次。 朴素算法: 遍历所有范围内的元素,再取最大或最小,则单次查询时间复杂度最 坏为 $ 阅读全文
摘要:
概念 LCA LCA (Lowest Common Ancestor),即最近公共祖先,指的是一棵树中任意两个节点深度最大的共同祖先。 有啥用 树有一个性质,两点之间有且只有一条简单路径,如果我们把 1 号节点作为根,则任意两点 $x,y$ 的简单路径就是 $x$ 到 $lca(x,y)$ 再到 $ 阅读全文
摘要:
算法思想 分治的主要思想就是分而治之,即把一个大问题分成若干个小问题,先去解决这些小问题,再去解决大问题。分治是一个思想,我们通过一些实际应用来感受一下。 归并排序 归并排序是一种稳定的排序算法,最好和最坏时间复杂度均为 $O(n \log n)$,是一种极其优秀的排序算法,它的原理如下: 假设我们 阅读全文