【刷题笔记】Peaks

【刷题笔记】P4197 Peaks

题解

想要判断只经过困难值 \(\le x\) 的边能否从 \(u\)\(v\),只需要判断 \(u\to v\) 路径上 最小的最大值\(x\) 的关系,这东西可以在 最小生成树 上维护。

将所有询问的 \(x\) 从小到大排序,这样每次只需要加入 权值 \(x_{i - 1}\)\(x_i\) 的边,保证每条边只会加入 一次

对每个点以 \(h\) 为下标开一棵动态开点线段树,记录每种 \(h\) 的出现次数,每次 kruskal 合并时,将两棵线段树合并,询问时在线段树上查询区间第 \(k\) 大即可。

posted @ 2025-07-29 13:16  GuoSN0410  阅读(4)  评论(0)    收藏  举报