杂题 I

杂题 I

P5471 [NOI2019] 弹跳

本题有简单的 KDT 优化建图做法,可以不建出边,而是对于每一弹跳机在 KDT 上查询。

与之类似的,我们还有更优秀的方法。

以下,我们称一个点被扩展,就是说将它的出边进行松弛,说一个点被松弛,就是通过其他点更新了起点到它的最短路长度。

根据 Dijkstra 的性质,距离起点最近的点被扩展后,它就不会再次被扩展。那么对于起点,它会一次性将一个矩形内的节点全部扩展之后,这些点不会再次被扩展,也不可能再被松弛了,因此如果你维护了一个数据结构之类的东西,他们就可以从树上被删除了。

我们用线段树套 set 维护这个即可。

posted @ 2025-03-20 18:21  haozexu  阅读(9)  评论(0)    收藏  举报