![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
文章平均质量分 58
616156
赛高______↑
展开
-
【树链剖分】QtreeⅣ&QtreeⅤ题解
Qtree4题意:维护一颗树,每个点有颜色(黑/白),最开始均为黑色。满足两种操作: 1,翻转某个点的颜色。 2,询问整棵树上距离最远的两个白色点的距离(带权边)分析线段树存储3个信息: 1,子树内到达左端点的最远距离,记为pl 2,子树内到达右端点的最远距离,记为pr 3,子树内的最远两点间的距离,记为val维护很容易: pl=max(lson.pl,rson.pl+len(l,mi原创 2017-12-19 22:58:58 · 676 阅读 · 1 评论 -
【数据结构】树链剖分总结
树链剖分是一种基于树的算法,将树转化为线性结构(如线段树),可以说是一种应用性十分强的算法,并且在近年来的考题中也常常出现。但其实思维上并不是一个很困难的东西,实现起来也非常好写。剖分技巧通常有三种: 1,随机剖分 2,盲目剖分 3,启发式剖分 在随机数据的情况下,三者的实际速度并没有太大差别,但如果数据有一定特征,那么前两个方法就会逊色不少。所以启发式剖分就是我们最常用的树链剖分方原创 2017-12-13 12:49:49 · 183 阅读 · 0 评论 -
【树链剖分】BZOJ2243染色
题目大意:给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。分析:其实并没有脱离最基础的树链剖分模板。 同样是树链剖分套线段树,线段树内储存当前区间的不同染色段的个数,以及原创 2017-12-14 18:05:56 · 226 阅读 · 0 评论 -
【总结】北大2018冬令营题目&总结
6道题,6道与概率计数相关的题,6道都涉及998244353这个魔性数字的题 Day1 T1: 给出一颗n个节点的二叉树,每个叶节点有一个权值(权值均不相同),每个非叶节点有一个概率P,表示:该点的权值有P的概率为它所有子节点中的最小值,同时有(1-p)的概率为所有子节点的最大值。 现在将根节点所有可能的权值从小到大排序,设分别为V1,V2,V3...Vm" role="presentat原创 2018-02-02 02:43:38 · 2520 阅读 · 0 评论 -
【树链剖分】Codechef DGCD
题意: 给出一棵点权树,有M次操作: 1、询问一条路径上的GCD 2、将一段路径上的点权加上d 分析: 如果这题在一个序列上就非常美妙了: 利用辗转相减法:GCD(a,b)=GCD(a−b,b)GCD(a,b)=GCD(a-b,b)GCD(a,b)=GCD(a−b,b) 所以如果这个问题在一个序列上: 设为A1,A2,……AnA_1,A_2,……A_nA1,A2,……An 就可以利用差分,...原创 2018-10-19 11:30:28 · 435 阅读 · 0 评论 -
【树链剖分】NOIP2018D2T3 保卫王国
分析: 听说是动态Dp的板题,但去年太菜没去冬令营听 仔细想想,用树链剖分也能过,而且的确也不是很难。 每个点有两种代价:选的代价和不选的代价。 线段树维护tree(x,0/1,0/1)分别表示左右端点是否选中。 合并两个线段: 其实就是分类讨论一下。。 然后保证先处理下层再处理上层,换言之,把每条链的信息反馈到其父亲节点上。 然后就简单了,每次限制,就把它对偶的选择代价+INF即可。 #in...原创 2018-12-03 17:17:14 · 491 阅读 · 0 评论 -
【网络流】【树链剖分】CodeForces786E ALT
题意: 给出一棵树,有一些人要从某个点沿最短路走向另一个点,现在可以在人和边上放狗。要求:每个人要么自己有一条狗,要么经过的每一条边上都有一条狗。 分析: 首先,如果数据范围小一点,那么这就变成了最小割板题了: 连边方式: 那么,为了解决会T的问题,考虑优化建图。 受到线段树优化区间建图的思想启发,不难联想到:用树上的线段树优化链建图:树链剖分 所以,这就是一个树链剖分优化建图的板题… #i...原创 2018-12-25 09:04:18 · 473 阅读 · 0 评论 -
【长链剖分】【DP】BZOJ4543[POI2014]Hotel加强版
题意: 给出一棵 n 个点的无根树,请在这棵树上选三个互不相同的节点,使得这个三个 节点两两之间距离相等,输出方案数即可。 分析: 定义 设f(x,i)f(x,i)f(x,i)表示在以x为根的子树中,与x距离为i的节点数 g(x,i)g(x,i)g(x,i)表示在以x为根的子树中选择了两个节点,最后一个点需满足与x的距离为i的方案数。 所以f(x,i)=∑uf(u,i−1)f(x,i)=\sum...原创 2019-01-07 21:40:40 · 294 阅读 · 0 评论