Link
BZOJ - https://www.lydsy.com/JudgeOnline/problem.php?id=3551
DescriptionReference
(ps 这道题好多人 a 啊)
给定一个无向图,每个点和每条边都有权值。
多次询问,每次询问从点
v
v
v 开始,只能经过边权小于等于 x 的边,求经过的点中权值第 k 大的那个
3545 不强制在线Reference
把边和询问都按照边权从小到大排序。
在每个点上开一个 treap 。
对于每一个询问,记这个询问限制了边权小于等于
x
x
x ,那么就
把所有边权小于等于
x
x
x 的边两端的点上的 Treap 启发式合并
搞完求第
k
k
k 大。
线段树合并也可以貌似Reference
3551 强制在线Reference
建重构树
对每个询问,在重构树上倍增向上跳,找到深度最小且点权小于等于
x
x
x 的点
就是一道树上第
k
k
k 大的板子。