AT_abc257_f [ABC257F] Teleporter Setting
题目描述
有 $N$ 个城镇和 $M$ 个传送器,城镇编号为 $1, 2, \ldots, N$。
每个传送器可以双向连接两个城镇,使用传送器可以在 $1$ 分钟内从一个城镇移动到另一个城镇。
第 $i$ 个传送器连接城镇 $U_i$ 和城镇 $V_i$,但有些传送器连接的其中一个城镇尚未确定。如果 $U_i=0$,则表示该传送器的一端连接城镇 $V_i$,另一端尚未确定。
对于 $i=1,2,\ldots,N$,请分别解决以下问题:
> 将所有连接端未定的传送器的未定端都连接到城镇 $i$。此时,从城镇 $1$ 到城镇 $N$ 最少需要多少分钟?如果仅使用传送器无法从城镇 $1$ 到达城镇 $N$,请输出 $-1$。
输入格式
输入按以下格式从标准输入给出。
> $N$ $M$
> $U_1$ $V_1$
> $U_2$ $V_2$
> $\vdots$
> $U_M$ $V_M$
输出格式
请输出 $N$ 个整数,空格分隔。第 $k$ 个整数表示当所有未定端都连接到城镇 $k$ 时,从城镇 $1$ 到城镇 $N$ 的最短所需时间。
说明/提示
## 限制条件
- $2 \leq N \leq 3\times 10^5$
- $1 \leq M \leq 3\times 10^5$
- $0 \leq U_i < V_i \leq N$
- 若 $i \neq j$,则 $(U_i, V_i) \neq (U_j, V_j)$
- 输入均为整数
## 样例解释 1
当所有未定端都连接到城镇 $1$ 时,第 $1$ 个和第 $2$ 个传送器都连接城镇 $1$ 和城镇 $2$。此时无法从城镇 $1$ 到达城镇 $3$。
当所有未定端都连接到城镇 $2$ 时,第 $1$ 个传送器连接城镇 $2$ 自身,第 $2$ 个传送器连接城镇 $1$ 和城镇 $2$。此时也无法从城镇 $1$ 到达城镇 $3$。
当所有未定端都连接到城镇 $3$ 时,第 $1$ 个传送器连接城镇 $3$ 和城镇 $2$,第 $2$ 个传送器连接城镇 $1$ 和城镇 $2$。此时可以按如下方式用 $2$ 分钟从城镇 $1$ 到达城镇 $3$:
- 使用第 $2$ 个传送器从城镇 $1$ 到城镇 $2$。
- 使用第 $1$ 个传送器从城镇 $2$ 到城镇 $3$。
因此,依次输出 $-1,-1,2$。
请注意,可能存在连接同一城镇的传送器,或存在多个传送器连接同一对城镇。
由 ChatGPT 4.1 翻译