#aBC257F. [ABC257F] Teleporter Setting

[ABC257F] Teleporter Setting

AT_abc257_f [ABC257F] Teleporter Setting

题目描述

NN 个城镇和 MM 个传送器,城镇编号为 1,2,,N1, 2, \ldots, N
每个传送器可以双向连接两个城镇,使用传送器可以在 11 分钟内从一个城镇移动到另一个城镇。

ii 个传送器连接城镇 UiU_i 和城镇 ViV_i,但有些传送器连接的其中一个城镇尚未确定。如果 Ui=0U_i=0,则表示该传送器的一端连接城镇 ViV_i,另一端尚未确定。

对于 i=1,2,,Ni=1,2,\ldots,N,请分别解决以下问题:

将所有连接端未定的传送器的未定端都连接到城镇 ii。此时,从城镇 11 到城镇 NN 最少需要多少分钟?如果仅使用传送器无法从城镇 11 到达城镇 NN,请输出 1-1

输入格式

输入按以下格式从标准输入给出。

NN MM
U1U_1 V1V_1
U2U_2 V2V_2
\vdots
UMU_M VMV_M

输出格式

请输出 NN 个整数,空格分隔。第 kk 个整数表示当所有未定端都连接到城镇 kk 时,从城镇 11 到城镇 NN 的最短所需时间。

输入输出样例 #1

输入 #1

3 2
0 2
1 2

输出 #1

-1 -1 2

输入输出样例 #2

输入 #2

5 5
1 2
1 3
3 4
4 5
0 2

输出 #2

3 3 3 3 2

说明/提示

限制条件

  • 2N3×1052 \leq N \leq 3\times 10^5
  • 1M3×1051 \leq M \leq 3\times 10^5
  • 0Ui<ViN0 \leq U_i < V_i \leq N
  • iji \neq j,则 (Ui,Vi)(Uj,Vj)(U_i, V_i) \neq (U_j, V_j)
  • 输入均为整数

样例解释 1

当所有未定端都连接到城镇 11 时,第 11 个和第 22 个传送器都连接城镇 11 和城镇 22。此时无法从城镇 11 到达城镇 33

当所有未定端都连接到城镇 22 时,第 11 个传送器连接城镇 22 自身,第 22 个传送器连接城镇 11 和城镇 22。此时也无法从城镇 11 到达城镇 33

当所有未定端都连接到城镇 33 时,第 11 个传送器连接城镇 33 和城镇 22,第 22 个传送器连接城镇 11 和城镇 22。此时可以按如下方式用 22 分钟从城镇 11 到达城镇 33

  • 使用第 22 个传送器从城镇 11 到城镇 22
  • 使用第 11 个传送器从城镇 22 到城镇 33

因此,依次输出 1,1,2-1,-1,2

请注意,可能存在连接同一城镇的传送器,或存在多个传送器连接同一对城镇。

由 ChatGPT 4.1 翻译