题解:P14211 [ROI 2016 Day2] 快递服务
FstAutoMaton · · 题解
[ROI 2016 Day2] 快递服务
STOOOOOOOOOOOO cyx CCCCCCCCCCCCOTZ。
首先考虑所有路径都是从 dfn 排序后相邻的两条链或者是最靠前和最靠后的两条链。直接求 LCA 计算即可。
考虑拓展。先将两条路径 LCA 不同的情况的答案求出来,可以将路径拆为 dp 对每个子树求出可以连向该子树中任意一个点的
然后考虑 LCA 相同的情况,此时形态如下图所示:
考虑枚举 set 中按照 dfn 排序,每次查询二分找到当前插入点的前驱和后继更新答案即可。
这个时候还有一个问题。对于一条链,如果其两个端点都在当前的子树内显然不应该将其统计进答案,所以需要对于每个路径在 LCA 处将其删去。
最终时间复杂度
code