luogu P3783 [SDOI2017] 天才黑客

发布时间 2023-12-07 13:49:14作者: 275307894a

题面传送门

为啥大家都写两个 log 的线段树优化建边啊,神秘,这 1log 做法好想又好写捏。

首先显然是可以把边看成点的,这样会变成 \(O(m)\) 个点和 \(O(m^2)\) 条边,寄。

但是还没有完全寄掉,我们发现,对于原图的每个点,对于第一个跑到这个点的边暴力转移,剩下的边转移只有一个子树,否则会被第一个点包含掉,这样就可以用堆+链表维护这个最短路了,时间复杂度 \(O(m\log m)\),但是因为我很懒所以链表写了 set。

submission