随笔分类 -  NOIP-数据结构-树链剖分

摘要:题意 有一颗树,多次询问:给出三个节点,求节点$k$使距离之和最小,且求距离。 思路 $lca$裸题。 这里可以证明一个性质:两两$lca$会得出三个节点,其中至少有两个重合。 证明: 显然有三种分布情况: 三个节点都在同一颗子树上,这时公共$lca$显然为子树根。 两个节点在同一颗子树上。假设这两 阅读全文
posted @ 2019-07-18 11:34 Ilverene 阅读(255) 评论(0) 推荐(0)
摘要:此类型题目有两种比较常见的做法:树链剖分和树上差分。 本题有多组修改一组询问,因此树上差分会比树链剖分优秀很多。 这里两种方法都进行介绍。 树链剖分和树上差分的本质都是将一颗树转换为一个区间,然后进行操作。 也就是说,先将一颗树变成区间,然后套用线段树/树状数组和差分。 树链剖分的具体流程不多加叙述 阅读全文
posted @ 2018-10-25 16:17 Ilverene 阅读(146) 评论(0) 推荐(0)
摘要:题目:传送门 这道题根本不用lca,也没有部分分。。。 考虑求两个点xy的lca的深度。 我们将x到树根所有点的值都加1,然后查询y到根的和,其实就是lca的深度。 所以本题离线一下上树剖乱搞就可以了。 AC代码如下:718ms 17348Kib 阅读全文
posted @ 2018-10-25 15:48 Ilverene 阅读(330) 评论(0) 推荐(0)