#P13344. [EGOI 2025] Currents

[EGOI 2025] Currents

Description

你在一座废弃宅邸的中庭深处,发现了一本古老的书,揭示了波恩市最隐秘的秘密。在城市的地下深处,存在着一个由 NN 个洞穴组成的系统,这些洞穴通过 MM 条水道连接。每条水道中都流淌着单向的魔力水流,可以让船只沿着水道快速穿梭。洞穴系统目前只有一个出口,位于洞穴 N1N-1

你对自己的发现感到无比兴奋,迫不及待地想要探索这些洞穴!然而,这个洞穴系统里住着一个巨魔,他喜欢戏弄不速之客。巨魔拥有有限的魔力——在你探险期间,他最多只能使用一次——可以用来修改洞穴系统,使你更难到达出口。

你的洞穴探险由若干轮组成。每一轮流程如下:

  1. 首先,巨魔可以选择是否使用他的魔法。如果他使用,咒语会同时产生以下效果:
  • 立刻反转所有水道的魔力水流方向:aba \rightarrow b 会变为 bab \rightarrow a
  • 关闭位于洞穴 N1N-1 的出口;
  • 并在洞穴 00 开启一个新的出口。
  1. 然后,你可以选择一条从当前洞穴出发的水道,用船移动到另一个洞穴。为简便起见,每次乘船称为“一步移动”。

此外,每当你处于有出口的洞穴时,你会立刻离开洞穴系统。注意,如果你在某一轮时正好处于洞穴 00,而巨魔选择此时发动魔法,你也会立即通过新开的出口离开。

你的目标是尽快离开洞穴系统,好赶上 EGOI 的闭幕式。而巨魔的目标正好相反:他希望你在洞穴里待得越久越好。巨魔总是知道你的位置,并会选择对他最有利的时机发动魔法。

对于每个洞穴 cc0cN20 \leq c \leq N-2),考虑你从洞穴 cc 出发的情形。对于这些情形中的每一个,请你计算无论巨魔何时发动魔法,你都一定能到达某个出口的最小移动次数

假设如果不发动魔法,从洞穴 00 总能到达任意洞穴,且从任意洞穴总能到达洞穴 N1N-1

Input Format

第一行输入两个整数 NNMM,分别表示洞穴数量和水道数量。接下来 MM 行,每行两个整数 aia_ibib_i,表示当前有一条水道可从洞穴 aia_i 到洞穴 bib_i。不会有自环,每对洞穴之间每个方向最多只会有一条水道。

Output Format

输出一行 N1N-1 个整数,第 ii 个整数(0iN20 \leq i \leq N-2)表示从洞穴 ii 出发,在巨魔任意时机发动魔法的情况下,你一定能到达出口所需的最小移动次数。

注意不需要输出洞穴 N1N-1 的答案(因为你一开始就在出口,可以立刻离开)。

5 6
0 1
1 2
1 3
2 4
3 4
0 3
2 2 2 1
7 10
2 6
5 3
4 2
1 6
2 3
3 6
4 5
0 4
4 1
0 1
2 1 2 3 2 4
2 1
0 1
1
6 8
0 1
4 0
1 2
2 3
3 5
0 4
4 5
2 0
2 4 3 3 1

Hint

样例说明

对于第一个样例,考虑你从洞穴 11 出发的情形。由于你无法预知方向反转会在何时发生,你应当一开始就朝着出口(洞穴 44)前进。你可以选择经由洞穴 22 或洞穴 33。此处,经由洞穴 33 是更优的选择,因为如果巨魔在你到达洞穴 33 时发动魔法,你可以直接通过从洞穴 33 到洞穴 00 的通道离开洞穴系统。

更具体地说,巨魔有三种可能的施法时机:

  • 如果巨魔在你还在洞穴 11 时立刻发动魔法,你可以直接从洞穴 11 前往洞穴 00 并离开洞穴系统。
  • 如果巨魔在你从洞穴 11 到达洞穴 33 后发动魔法,你可以直接从洞穴 33 前往洞穴 00 并离开。
  • 如果巨魔在上述两种情况下都没有发动魔法,你将从洞穴 33 前往洞穴 44 并离开。

在第一种情况下你只需要移动一次;在其余两种情况下你需要移动两次。因此,这一情形的答案为 max(1,2,2)=2\max(1, 2, 2) = 2

注意,如果你选择从洞穴 11 前往洞穴 22,巨魔可以迫使你需要三步才能离开。

第一个和第二个样例满足测试组 3、4、5 的约束。第三个样例满足所有测试组的约束。第四个样例满足测试组 3 和 5 的约束,见下图。

约束与评分

  • 2N2000002 \leq N \leq 200\,000
  • 1M5000001 \leq M \leq 500\,000
  • 0ai,biN10 \leq a_i, b_i \leq N - 1aibia_i \neq b_i
  • 在反转前,洞穴 00 能到达所有洞穴,且所有洞穴都能到达洞穴 N1N-1

你的解答将在一组测试组上进行评测,每组包含若干测试用例。要获得该测试组的分数,你需要通过该测试组的所有测试用例。

测试组 分值 限制条件
1 12 M=N1M = N - 1,且 ai=ia_i = ibi=i+1b_i = i + 1,即洞穴系统是一条链 $0 \rightarrow 1 \rightarrow 2 \rightarrow \ldots \rightarrow N-1$
2 15 对每个 0iN20 \leq i \leq N-2,都存在一条从 ii 直达 N1N-1 的通道(可能还有其它通道)
3 20 N,M2000N, M \leq 2000
4 29 每次离开某洞穴后,在反转发生前无法回到该洞穴(即所有通道构成有向无环图)
5 24 无额外限制

翻译由 ChatGPT-4.1 完成。