P13695-CEOI-2025-theseus
题意
通信题,无向图,一开始给边权定一个 \(\{ 0,1 \}\) 的权,要从 \(s\) 走到 \(t\),但每次只能看到边的信息,没有记忆。要求步数小于最短距离 \(+14\)。定边的时候只知道 \(t\)。
思路
注意到这个 \(14\) 是一个大于 \(\log n\) 的数,这也就提示我们应该至多多 \(\log\) 次。然后我们赋值其实相当于给这个边顶一个向,把图转成有向图。
那么我们可以从 \(t\) 开始做一个 bfs 分层。然后我们考虑如果能走向层更小的就直接连边。现在的问题是我们怎么考虑层之间的连边。
考虑这个 \(\log n\),类似一个合并操作。那么我们启发式合并直接从小的连向大的。这样我们向旁边每一次都会扩张很多的点,至多扩张 \(n\) 次,所以是 \(\log\) 的。
但是现在的问题是可能有很多个连出去的边,我们不知道走哪条。于是我们可以直接在一开始就把所有的点和边从大到小去考虑,这样最终我们只需要走一个能走且编号最大的点就一定可以满足条件。

浙公网安备 33010602011771号