
树链
文章平均质量分 63
昵称很长很长真是太好了
这个作者很懒,什么都没留下…
展开
-
P4216 [SCOI2015]情报传递 LCA+树上主席树 离线操作
题意:给你一棵n个点的树,初始每个位置没有点权有m次操作1 x:让一个点从当前时刻开始,每秒操作点权++2 x y c:查询一条链中有多少点的点权大于c其中每秒操作点权++就是指我每操作一次,无论是否和那个点有关,那个点权值都会++1操作对于每个点只会开始一次题解:此题的做法非常多大部分都是O(m(logn)2)O(m(logn)^2)O(m(logn)2)的做法,也就是很朴素的树剖+线段树离线询问。学习了一种O(mlogn)O(mlogn)O(mlogn)的做法,十分巧妙。看到查询原创 2021-09-21 16:34:37 · 163 阅读 · 0 评论 -
[SDOI2011]染色 (线段树维护子段问题+树剖)
题意:给定一棵 n 个节点的无根树,共有 m 个操作,操作分为两种:1.将节点 a 到节点 b 的路径上的所有点(包括 a 和 b)都染成颜色 c。2.询问节点 a 到节点 b 的路径上的颜色段数量。颜色段的定义是极长的连续相同颜色被认为是一段。例如 112221 由三段组成:11、222、1。题解:树剖+线段树维护区间子段和问题。如果在在单独的线段树上操作的话,难度还不是特别高,这个题因为转移到了树上去,树剖的本质是把线段树的区间给分成了好几段,所以我们在经过树上路径的时候,衔接位置要特别注原创 2021-06-08 22:36:24 · 171 阅读 · 0 评论 -
SP10628 COT - Count on a tree (树剖+可持久化线段树)
题意:给定一个包含 N 个结点的树. 树节点从 1 到 N编号.。每个节点有一个整数权值。我们会要求您执行以下操作:u v k : 询问从节点 u 到 节点 v 的路径上的第k小的权值输入在第一行中有两个整数N 和 M(N, M <= 100000)在第二行中有N 个整数, 第i个整数表示第i个节点的权值。接下来的N-1 行, 每行包含两个整数 u v, 它表示有一条边 (u, v).在接下来的 M 行中, 每行有三个整数 u v k, 代表查询从节点 u 到节点 v的路径上权值第k小原创 2021-05-13 20:18:16 · 117 阅读 · 0 评论 -
树链剖分(轻重链剖分) 讲解 (模板题目 P3384 【模板】轻重链剖分 )
P3384 【模板】轻重链剖分首先先说一下基本概念:1.重儿子:一个结点的所有儿子中,大小最大的那个(最重的,所以说只有一个,如果有多个儿子的大小相等那就随便取一个)。2.轻儿子:一个结点的儿子除了重儿子以外的所有儿子都是轻儿子。(根节点为轻儿子)3.重链:从一个轻儿子开始,一路往重儿子走,连出来的链叫重链。4.轻链:除了重链全是轻链。如下图:重链即为标染色点连出的边。dfs序即为即为图中红色标号。那么我们如何处理出这个dfs序呢?通过两个dfs.第一个dfs需要:1.标记结点的父原创 2021-03-19 23:17:08 · 276 阅读 · 0 评论