LG-B4292. [蓝桥杯青少年组省赛 2022] 路线

提交8 通过6
通过率75%
时间限制1000ms
内存限制512MiB
✦ 路线:从服务中心反向做 BFS · 老师讲思路与动态图示新标签页打开 ↗

题目描述

题目描述

有一个旅游景区,景区中有 NN 个景点,景点以数字 11 到 NN 编号,其中编号为 NN 的景点为游客服务中心所在地。景区中有 MM 条连接路线,每条路线连接两个景点。

已知:

  1. 一个景点可以被多条路线连接;
  2. 景点之间的连接路线都可以双向行走;

当给出 NN 个景点和 MM 条连接路线,及 MM 条路线的连接关系,请你计算出从编号 11 到编号 N−1N-1 的每一个景点,到达游客服务中心至少需要经过几条路线。如果某个景点不能到达游客服务中心则输出 −1-1。

例如:

  • 当 N=5N=5,M=4M=4 时
  • 4 条路线的连接关系为:1↔21\leftrightarrow2、1↔31\leftrightarrow3、2↔42\leftrightarrow4、2↔52\leftrightarrow5
  • 则:
    • 景点 11 到达景点 55(游客服务中心)至少经过 22 条路线(路线 11,路线 44)
    • 景点 22 到达景点 55 至少经过 11 条路线(路线 44)
    • 景点 33 到达景点 55 至少经过 33 条路线(路线 11,路线 22,路线 44)
    • 景点 44 到达景点 55 至少经过 22 条路线(路线 33,路线 44)

输入格式

第一行输入两个正整数 NN 和 MM,NN 表示景点个数,MM 表示路线条数,两个正整数之间一个空格隔开。

接下来输入 MM 行,每行包括两个正整数 SS,EE,两个正整数之间一个空格隔开,表示编号 SS 和编号 EE 的两个景点有一条路线连接。

输出格式

一行输出多个整数。按照 11 到 N−1N-1 的编号顺序,分别输出每个景点到达编号 NN(游客服务中心),至少经过几条路线可以到达,如果某个景点不能到达则输出 −1-1,整数之间一个空格隔开。

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

数据范围

(4≤N≤1004 \leq N \leq 100,1≤M≤1001 \leq M \leq 100)

(1≤S≤N1 \leq S \leq N,1≤E≤N1 \leq E \leq N,S≠ES \neq E)