![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
长链剖分
ylsoi
这个作者很懒,什么都没留下…
展开
-
[vijos]lxhgww的奇思妙想——长链剖分模板
题目大意: 给定一棵树,询问x的k次祖先。 思路: 这是一道长链剖分的模板。 长链剖分类似于平常树链剖分的模式,但是划分轻重链并不是以size为依据而是以子树内最深度最大的节点为依据,这使得它具有一些重链剖分不具有的性质。 性质1:所有的链长=n 性质2:任意一个点的k次祖先所在的链链长≥\geq≥k。 上面两条性质都很好证,这里不再作多余说明。 于是考虑如何高效地求解k次祖先,我们在每条链的端点...原创 2019-01-07 17:05:36 · 157 阅读 · 0 评论 -
[bzoj1758][Wc2010]重建计划——长链剖分+线段树+分数规划
题目大意: 给定一颗带权的树,求一条长路在[L,R][L,R][L,R]的路径,权值的平均数最大。 思路: 显然先分数规划,二分答案,然后考虑怎么check。 考虑一个简单的树型DP,记fi,jf_{i,j}fi,j为i子树内距离i为j的点中路径长度和最大是多少,然后一个点可以从它的儿子转移过来,在转移的时候每次记录前缀枚举新添加进来的子树深度计算一遍答案。 这样复杂度O(n2)O(n^2)O(...原创 2019-01-07 20:39:19 · 194 阅读 · 0 评论 -
[bzoj4543][POI2014]Hotel加强版——长链剖分
题目大意: 传送门 思路: 每一个三元组必定是一个三叉。 考虑在三个点的lca处计算贡献。 考虑记fu,jf_{u,j}fu,j表示距离u深度为j的点一共有多少个,gu,jg_{u,j}gu,j表示在u的子树中,点对a,b距离lca 的距离为d,lca距离u的距离为d-j,也就是这两个点对还差一段长度为j的路径才成凑成一个合法的三元组。 于是每一个点都可以从子树转移过来,考虑记录前缀,然后在新...原创 2019-01-07 20:48:41 · 223 阅读 · 0 评论