————树链剖分
BAJim_H
比孤独更可悲的事情,就是根本不知道自己很孤独,或者分明很孤独,却把自己都骗得相信自己不孤独。
展开
-
[BZOJ1036][JZOJ2256]【ZJOI2008】树的统计(树链剖分模板)
Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u原创 2016-05-20 21:13:54 · 702 阅读 · 0 评论 -
[BZOJ4551][JZOJ4604]【TJOI&HEOI2016】D1T1 树
Description 在2016年,佳媛姐姐刚刚学习了树,非常开心。 现在他想解决这样一个问题: 给定一颗有根树(根为1),有以下两种操作: 1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个结点,可以打多次标记。) 2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖 先)你能帮帮他吗?So原创 2016-07-11 14:36:43 · 719 阅读 · 0 评论 -
树链剖分
关于链剖链剖实质上是通过轻重链的划分,将树剖成一条条重链,首尾相连存进数据结构(线段树、树状数组、splay之类的),支持路径查询,修改等如何实现?定义以下几种东西重儿子 子树大小最大的儿子轻儿子 除重儿子其他的都是轻儿子重边 每个点连向它的重儿子的边轻边 连向轻儿子的边重链 重边组成的链这里总共有5条重链,1-2-4-8、5、9、3-6-10、7我们按照优先重链的DFSDFS序重新标号原创 2016-05-20 19:16:52 · 425 阅读 · 0 评论 -
【树链剖分】【Hall定理】[JZOJ5824][BZOJ5404] Party
Description Solution我们发现颜色种类不多,只有1000种 因此我们可以用bitset来维护颜色集合。我们将这棵树轻重链剖分,用线段树维护链的颜色集合(空间为O(N*1000/32)),若倍增的话空间要多乘上log。 当我们需要查询一条链时,由于没有修改,我们大可以直接记录每个点到所在重链顶的颜色集合,这样原本log^2的时间复杂度就变成log的了。...原创 2018-08-16 22:50:05 · 273 阅读 · 0 评论 -
[JZOJ5909]【NOIP2018模拟10.16】跑商【圆方树】【树链剖分】
Description基三的地图可以看做 n 个城市,m 条边的无向图,尊者神高达会从某个点出发并在起点购买货物,在旅途中任意一点卖出并最终到达终点,尊者神高达的时间很宝贵,所以他不会重复经过同一个城市,但是为了挣钱,他可能会去绕路。当然,由于工作室泛滥,所以一个城市的货物价格可能会发生改变。但是尊者神高达智商不足,他可能在一个很蠢的节点把货物卖掉,所以尊者神高达想知道每一次跑商最多能赔多少钱...原创 2018-10-16 16:53:35 · 220 阅读 · 0 评论 -
【2018.12.22模拟赛】Party【启发式合并】【数据结构】(无实现)
Description给出了一棵以1为根的有n个节点的树。m组询问,每个询问选择一个区间[l,r]。你需要回答满足z∈[1,n]z\in [1,n]z∈[1,n]且存在x,y∈[l,r]x,y\in[l,r]x,y∈[l,r]使得lca(x,y)=zlca(x,y)=zlca(x,y)=z的zzz的个数。n,m≤3×105n,m\leq 3\times10^5n,m≤3×105Sol...原创 2018-12-26 22:32:06 · 231 阅读 · 0 评论 -
【2019.1.8模拟赛】Tree 【长链剖分】【凸优化】【DP】
Description给出一棵n个点的树,每个点有点权,要求在树上选出恰好m条点不相交的链,每条链至少有k个点,要求点权和最大。n≤150005n\leq 150005n≤150005Solution看到恰好选出m条链,立刻反应到是凸优化,二分选择一条链需要花费的额外代价但是要求每条链至少有K个点。设f[i]f[i]f[i]为i子树中随便选若干条链的答案(满足k的限制)一个点的贡献大...原创 2019-01-10 15:37:48 · 273 阅读 · 0 评论 -
[JZOJ6074]【GDOI2019模拟2019.3.20】铁路【数据结构】【树状数组】【树链剖分】【线段树合并】
DescriptionSolution老年选手表示真的不太码的动。。。细节太多了,相当难写为啥XJ和ASDFZ的大佬们动不动一写就是6K,7K 300行啊,这也太能码了这题感觉还是蛮套路的。我们首先可以将边的中点也建一个点,现在就只会在点上相交了。分情况讨论要么是两个起点深度相同,一起向上走,走到这两个起点的lca处相交一种是一个起点在子树内,向上走,一个起点在子树外,向下走...原创 2019-03-20 22:13:21 · 287 阅读 · 1 评论 -
[JZOJ6050]【NOI2019模拟2019.3.11】树上四次求和 【数据结构】【树链剖分】【点分治】
DescriptionSolution一道很简单的题,自己没有想出来,相当不应该一开始我先想的假如直接询问w(i,j)怎么做,但是完全没有思路(后来发现询问w(i,j)比这题难的多)首先那个排列a似乎没什么用,那么以下的表示都忽略掉(把x看做a[x])先化一波式子,可以得到这个结果ansk=∑x=1k∑y=xkdis(x,y)×x(k−y+1)ans_k=\sum\limits_{...原创 2019-03-13 20:37:36 · 379 阅读 · 0 评论