Kruskal重构树练习。
1.水灾
这题好像和普通重构树不太一样。
我们要的是x所有简单路径的最小值的最大值(稍微想一想,我们只要每条路径断掉一条边就好了)。
那就是建一棵重构树(从大到小连边)。
然后对于每一个询问找出所有点对的LCA的最大值。
2.Qpwoeirut and Vertices
这题一眼重构树(主要是学的是重构树。。。)。
我们要求的是 连接边[1, k],使得点 [li, ri] 能全部联通的最小的k。
所以就是求所有简单路径的最大值的最小值(稍微再想一想,我们要的是某条路径所有边联通就好了)。
那就建一棵重构树(从小到大v连边)。
但是怎么在重构树上快速某一段区间最大的LCA呢?(不会啦)。
3.Graph and Queries
可以将所有询问离线下来。
然后从后往前做,每次变成加边。
但是对于操作一,我们必须从前往后做,怎么办呢?
先对于最后一次的操作建一个重构树。
然后按从后往前的加边顺序来加边。
每次加完遍后,记下询问的v的最高的祖先。
之后在从前往后做一边,线段树维护下最大值,单点修改。(总的来看感觉其实不是很会写。。。)
4.归程
先预处理出每个点到1的距离。
再搞一个重构树,然后在重构树上找到对应v的连通块的祖先中距离1最小的那个点。
5.Life is a Game
第一眼BFS。(TLE是必然的)。
之后听完课后来补充下吧。