![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
树链剖分
ハルカナソラヘ
果てなく続いて行く、
生きとし生けるものは。
抗うことの出来ない、
散り行く因縁抱いて。
記憶の隙間で ただ微笑む瞳が 儚く零れた、
運命さえ 光で照らして行く。
闇を離した この手を繋ぐ、
穢れなき宵 咲き誇るように。
夢から覚めた 昨日の声を、
ずっと聞かせて 独り歩いて行く。
展开
-
20200919 SCOI模拟T3(树链剖分)
T3 P4216 [SCOI2015]情报传递思路:一个点如果从 tit_iti 开始收集情报,对于一个询问 Ti,CT_i,CTi,C,如果 Ti−ti>CT_i-t_i>CTi−ti>C,则这个点对答案有贡献变形一下式子:Ti−C>tiT_i-C>t_iTi−C>ti于是将询问离线,时间戳改成 Ti−CT_i-CTi−C,排序后就是树剖裸题了考场脑子抽了,写了个权值线段树维护的树上带修莫队,然后……T成狗了代码:#include <b原创 2020-09-23 14:08:34 · 79 阅读 · 0 评论 -
20200912 SCOI模拟T2(线性基+树链剖分)
T2 P3292 [SCOI2016]幸运数字思路:先考虑序列上的情况,可以线性基维护再考虑树上的情况,可以树剖维护,合并两个区间时,暴力的将一个区间的所有数插到另一个线性基里时间复杂度:O(nlog4n)O(nlog^4n)O(nlog4n)(树剖nlog2nnlog^2nnlog2n×\times×暴力合并线性基log2nlog^2nlog2n )代码:#include <bits/stdc++.h>using namespace std;#define LL long l原创 2020-09-12 16:56:33 · 106 阅读 · 0 评论 -
20200615 SCOI模拟T2(树链剖分)
CF1017G The Tree思路:发现暴力感染复杂度过高,转换一下思路感染一次将点权加一,对于一个节点 u,它要感染到子节点 v,那么 u 到 v 的路径和要大于路径距离即sum−(dep[v]−dep[u])≥0sum-(dep[v]-dep[u])\geq 0sum−(dep[v]−dep[u])≥0发现询问时 dep 不好维护,于是 玄学 变换一下将每个点的初始点权赋为 -1查询即一段路径和大于等于零于是维护右区间和的最大值如果存在最大值大于零,即被感染考虑二操作对于节点 u原创 2020-06-15 21:41:11 · 99 阅读 · 0 评论 -
20200612 SCOI模拟T1(树链剖分)
T1 P3976 [TJOI2015]旅游思路:严重怀疑出题人语文是体育老师教的神tm根本没说清楚是只能买一次还是能买多次……考试的时候只有一个小样例还查不出错shift一句话题意:一条树上的链靠后的数减靠前的数的最大值一眼树剖先考虑序列上处理对于两段区间,合并时只要知道左段的答案,右段的答案,和右段最大值减去左段最小值即可更新答案考虑树上对于一段区间有两个方向,于是每段区间都维护 max,min 和两个方向的答案注意树剖跳的时候的合并方向问题代码:#include<bit原创 2020-06-12 19:58:39 · 76 阅读 · 0 评论 -
20191028 专题:树链剖分(咕~~~)
总览:轻重链剖分对于每条重链,其上的点dfsdfsdfs序是连续的,可以用线段树(用dfsdfsdfs序做下标)上的一段区间维护。T1 P2590 [ZJOI2008]树的统计(P2590 [ZJOI2008]树的统计)题目描述一棵树上有nnn个节点,编号分别为1到n1到n1到n,每个节点都有一个权值www。我们将以下面的形式来要求你对这棵树完成一些操作:I. CHANGEutCH...原创 2019-10-28 22:19:42 · 128 阅读 · 0 评论