摘要:
最近公共祖先 LCA Tarjan 树剖 最简单的$LCA$就是利用倍增的思想,$f[i][j]$表示从$i$号节点往上跳$2^j$个点到哪了。 先将两个点跳到同一高度,然后一块往上跳,最后得到的节点的父亲就是答案。 cpp include include using namespace std; 阅读全文
摘要:
最小生成树 $Kruskal$ 很简单的贪心求最小生成树。 按边权排序,从前往后枚举边,只要这条边的两个点不在一个集合里,就将他加入答案,同时合并该边连接的两个点。并查集维护一下就好了 欢迎指正评论O(∩_∩)O~~ 阅读全文
摘要:
"玩具装箱" 题目描述 $P$教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。$P$教授有编号为 $1⋯N $的 $N$ 件玩具,第 $i$件玩具经过压缩后变成一维长度为 $Ci$ .为了方便整理 阅读全文
摘要:
树链剖分 [TOC] 树这个结构,本身很优美,但有些涉及区间的问题用树来做就会比较别扭。有一些方便处理区间的数据结构,可以和树结合一下。比如线段树。 定义 重儿子:所有儿子中节点数最多的儿子 轻儿子:除重儿子以外的儿子 重边:链接重儿子的链 轻边:剩余的边 重链:链接重儿子的链 轻链:其余的链 思想 阅读全文