Luogu4899 [IOI2018] werewolf 狼人
题意:给出一张
有若干个询问,给出
起点为
,终点为 。 存在途经点
(路径写作 ),使得 不经过编号为 的点, 不经过编号为 的点。(点 被限制两次)
强制在线。
由于无向图,记从
这是瓶颈路问题,考虑用 Kruskal 重构树来刻画
以
接下来,建立最大重构树,
问题转化为:给出两棵树
将第二棵树求出 dfs 序,然后挂在第一棵树的节点上,对第一棵树线段树合并,维护子树内的dfn 集合。
每次查询,在第一棵树的对应节点上,查询第二棵子树的对应 dfn 区间即可。
时间复杂度