#4567. Teleporter Setting

0

Teleporter Setting

Teleporter Setting

题目描述

有 NN 个城镇 编号为 城镇 11, 城镇 22, …\ldots, 城镇 NN.
还有 MM 个瞬移器,每个瞬移器双向连接两个城镇,使得一个人可以在一分钟内从一个城镇到达另一个城镇。 第 ii 个瞬移器双向连接 城镇 UiU_i 和 城镇 ViV_i。 然而,对于其中一些瞬移器,它所连接的其中一个城镇尚未确定; Ui=0U_i=0 表示第 ii 个瞬移器连接的一个城镇是 城镇 ViV_i, 但另一端未确定。 对于 i=1,2,…,Ni=1,2,\ldots,N,回答以下问题。

当所有端点未确定的瞬移器都被确定为连接到 城镇 $i$ 时, 从 城镇 $1$ 到 城镇 $N$ 至少需要多少分钟? 如果使用瞬移器仅无法从 城镇 $1$ 到 城镇 $N$,则输出 $-1$。

输入格式

输入从标准输入按如下格式给出: NN MM U1U_1 V1V_1 U2U_2 V2V_2 ⋮\vdots UMU_M VMV_M

输出格式

输出 NN 个整数,之间用空格分隔。 第 kk 个整数应当是在 i=ki=k 时问题的答案。

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

提示

2≤N≤3×1052 \leq N \leq 3\times 10^5 1≤M≤3×1051\leq M\leq 3\times 10^5 0\leq U_i<V_i\leq N 如果 i≠ji \neq j,则 (Ui,Vi)≠(Uj,Vj)(U_i,V_i)\neq (U_j,V_j)。 输入中的所有数值均为整数。当所有端点未确定的瞬移器都被确定为连接到 城镇 11 时,
第 11 个和第 22 个瞬移器都连接 城镇 11 和 城镇 22。 此时,无法从 城镇 11 旅行到 城镇 33。 当所有端点未确定的瞬移器都被确定为连接到 城镇 22 时,
第 11 个瞬移器连接 城镇 22 和 它自身,第 22 个瞬移器连接 城镇 11 和 城镇 22。 同样地,无法从 城镇 11 旅行到 城镇 33。 当所有端点未确定的瞬移器都被确定为连接到 城镇 33 时,
第 11 个瞬移器连接 城镇 33 和 城镇 22,第 22 个瞬移器连接 城镇 11 和 城镇 22。 在这种情况下,我们可以在两分钟内从 城镇 11 旅行到 城镇 33。

使用第 22 个瞬移器从 城镇 11 到 城镇 22。 使用第 11 个瞬移器从 城镇 22 到 城镇 33。

因此,应当按此顺序输出 −1,−1-1,-1 和 22。 注意,取决于那些端点未确定的瞬移器被连接到哪个城镇, 可能会有连接某城镇自身的瞬移器, 或多个瞬移器连接相同的一对城镇。

标签: AtCoder|abc257F

来源

AtCoder|abc257F