树链剖分
Facico
生命是闪耀的此刻,不是过程,就像芳香不需要道路一样。
展开
-
树链剖分题库
不断更新中…… 最初学习树链剖分时只找到一道题,现在又找到了几道练手的题目,类似模板题,拿出来堆在一起。 难度为升序的。 【ZJOI2008】树的统计 要求会打树链剖分。 【GDOI模拟】数树数 要求会打树链剖分。需要线段树的动态开空间或用离线大法。需要会用c++的map或者打哈希加离散化。 【SDOI2014】旅行 要求会打树链剖分。需要线段树的动态开空间或用离线大法。操作复杂原创 2016-04-02 23:52:13 · 649 阅读 · 0 评论 -
树链剖分学习小记
树链剖分学习小记 平常在一棵树上,从点u到点v询问一些最大值,求和之类的,都是先打个lca然后在类暴力一下,小题可以对,但遇到大题就挂了。然后就去看了一下树链剖分%%% 其实也不难。。。 树链剖分其实就是用数据结构去维护上面的点或链,降低一下复杂度。不过如果随意的去维护,会搞得很乱,时间消耗可能比暴搜还慢。 现在有一种剖分的方法:轻重链剖分(启发式剖分)。 从原创 2016-02-04 10:32:28 · 1216 阅读 · 0 评论 -
【GDOI模拟】数树数
Description给定一棵N 个节点的树,标号从1~N。每个点有一个权值。要求维护两种操作: 1. C i x(0<=x<2^31) 表示将i 点权值变为x 2. Q i j x(0<=x<2^31) 表示询问i 到j 的路径上有多少个值为x 的节点Solution这是一道很裸的树链剖分的题目,有一道题很这题极其类似【SDOI2014】旅行 不过多了一些操作而已。用动态开空间的方法这种方法又原创 2016-04-02 23:42:20 · 1223 阅读 · 0 评论 -
【SDOI2014】旅行
DescriptionSolution用什么很明显,这是一个树上操作,但是需要类似线段树的维护,一个很裸的树链剖分加线段树。怎么做因为有c个宗教,那么就开c棵线段树。然后就可以了。空间太大了我用了动态开空间,类似主席树那样打。在线大法好! 也可以打一个离散化。离线大法好!Code#include<iostream>#include<cstring>#include<cstdio>#inclu原创 2016-04-02 07:33:51 · 1261 阅读 · 0 评论 -
JZOJ4444【HNOI模拟】a
Description给定一棵N 个节点的树, 每个点i 有权值a[i], 1<=a[i]<=m 有Q 个询问, 对于询问x,y,k, 分别输出树上从x 到y 的路径中, 权值小于/等于/大于k的点的数目Solution一道很裸的题目。用什么看看这道题要求的数据结构能做什么。 1、树上强制在线查询(树链剖分,lct,可持续化数据结构);2、权值范围询问(权值线段树) 没有修改啊! 省一省代码原创 2016-04-19 18:08:32 · 1132 阅读 · 0 评论 -
【TJOI2016&&HEOI2016】树
DescriptionSolution第一眼的链剖维护重链上打过标记的点的下标的最大值就好了。倒着做并查集也可以Code#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++)#define rep(i,a原创 2016-07-13 21:46:27 · 970 阅读 · 0 评论 -
【SDOI2011】染色
Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。Solution第一眼的水题这种树上的修改与询问,不是一眼的树链剖分吗! 为了练习动态树,原创 2016-07-02 19:22:27 · 1332 阅读 · 0 评论 -
【GDOI 2016】第四题 疯狂动物城
DescriptionSolution题目好长,一看就烦操作1:1,x,y,z把x到y的点权值加z。 操作2:2,x,y把x到y的点一次放进一个数组a里面,统计答案ans=∑ni=1a[i]∗∑n−ij=1ans=\sum_{i=1}^na[i]*\sum_{j=1}^{n-i}。 操作3:3,x所有点的状态回到第x次修改后的。码农题啊!!!害人啊!!!不过知道是码农题,在比赛的最后30分钟,竟原创 2016-08-06 21:46:56 · 1654 阅读 · 0 评论