随笔分类 - 树 - 树链的并
摘要:比较好的一道数据结构题. 对于 $i$,我们希望求出所有经过 $i$ 号点的路径所构成的树链之并. 考虑一个求解树链的并的经典做法就是 $\sum_{i=1}^{n} dep[i]-\sum_{i=2}^{n} dep[LCA(i,i-1)]$. 这里要求所有点都要按照 $dfs$ 序排好. 那么这
阅读全文
摘要:一定注意,这里不要写错: $low[y]>=dfn[x]$,开始的时候把 $dfn[x]$ 写成 $low[x]$ 调了一下午...... 然后根据圆方树优美的性质,我们发现题中要求的就是圆方树上一些点构成的树链的并中圆点个数. 这个问题可以用虚树或树链的并解决. code: #include <c
阅读全文
摘要:题意:给定一颗树,有 $m$ 次操作. 操作 0 :向集合 $S$ 中加入一条路径 $(p,q)$,权值为 $v$ 操作 1 :给定一个点集 $T$,求 $T$ 的并集与 $S$ 中路径含交集的权和.(就是如果路径 $i$ 与 $T$ 有交集,就产生 $v_{i}$ 的贡献) 数据范围:路径长度 $
阅读全文
摘要:这个思路挺有意思的 ~ 利用树链的并来保证每个颜色只贡献一次,然后用可持久化线段树维护 code: #include <set> #include <cstdio> #include <cstring> #include <algorithm> #define N 100005 #define se
阅读全文
摘要:利用树剖序的一些性质~ 这个题可以出到 $\sum k=10^5$ 左右. 做法很简单:每次暴力跳重链,并在线段树上查询链和. 查询之后打一个标记,把加过的链都置为 $0$.这样的话在同一次询问时即使有重复的也无所谓. 然后本次查询后在线段树的 $1$ 号节点再打一个标记,用来将那些置零的标记清空.
阅读全文
摘要:Description 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达。游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然后可以任意在地图的道路上行走,若走到某个村庄中有宝物,则视为找到该村庄内的宝物,直到找到所有宝物并返回到
阅读全文

浙公网安备 33010602011771号