【学习记录】24.02.17 树上问题 + 数据结构
树上问题/数据结构
树链剖分/树上差分
CF383C Propagating tree
分成深度为奇数和偶数两种点,对每一种点开线段树维护。
题解看到的更优做法:用 一个树状数组维护,对于深度为奇数和偶数分别加减,最后输出时也分别改为正负。
BZOJ3306 树
没听。
P3128 [USACO15DEC] Max Flow P
树上差分,树上路径加
P2680 [NOIP2015 提高组] 运输计划
最大值最小,采用二分,把最优性问题转化为可行性问题。
P4216 [SCOI2015] 情报传递
先将在
先读入所有询问,均转化为某时刻大于
若强制在线,需要可持久化数据结构,不管了。
P5838 [USACO19DEC] Milk Visits G
转化为求路径上有多少等于
考虑离线做法,把询问按
- 以上两道题都用到了子树的dfs序连续,可以用树状数组维护。
感谢学长HDU5692 shacks
没听。
P4211 [LNOI2014] LCA
先考虑到差分的优化,转化为
1 到两点的前缀和之差。
后边没听(其实是听到一半跟不上了)。
CF696E ...Wait for it...
紫题放弃了。
P4219 [BJOI2014] 大融合
离线,先建出完整的树,给每条边一个标记,表示这条边是否存在,则原加边操作变为把一条边的
CF536E Tavas on the Path
离线操作,将询问按
可以树剖做,转化成区间查询,因此需要单点修改,用线段树维护答案。
可持久化数据结构
-
部分可持久化:可查询不可修改。
-
完全可持久化:可修改历史版本。
P3919 【模板】可持久化线段树 1(可持久化数组)
板子题,用路径复制思想,每次只把修改的版本建新节点,其他的连向上一个版本即可。
若线段树中有标记下放时,必须要重建后再下放。
P3834 【模板】可持久化线段树 2
维护序列每个前缀对所有数值的桶数组,每个前缀对应一个线段树,则第
P4592 [TJOI2018] 异或
可持久化01Trie树,放弃了,题解里说P4734、P2633是前置知识紫题太难了。
P3567 [POI2014] KUR-Couriers
如P3834一样建树,进行线段树二分,向下查找即可。
P2839 [国家集训队] middle
二分求解,放弃没听。
CF464E The Classic Problem
可持久化线段树和最短路结合的黑题?放弃放弃。
P3402 可持久化并查集
要完全可持久化,需要用复杂度均摊的按秩合并来做。
P3302 [SDOI2013] 森林
前置的可持久化并查集还没整明白,不听了。
LOJ6144 [2017 山东三轮集训 Day6] C
没听。