#ATabc132e. 【分层最短路】[ABC132E] Hopscotch Addict

【分层最短路】[ABC132E] Hopscotch Addict

AT_abc132_e [ABC132E] Hopscotch Addict

题目描述

在一个有向图 GGNN 个编号为 11NN 的顶点和 MM 条边组成,第 ii 条边连接顶点 uiu_i 和顶点 viv_i

现在要从顶点 SS 出发到顶点 TT。一次操作指的是:连续进行 33 次“从当前所在顶点选择一条出边,移动到该边所连接的顶点”的操作。

判断是否能够从顶点 SS 移动到顶点 TT,如果可以,请输出最少需要多少次操作。

如果在一次操作的中途经过顶点 TT,也不算到达顶点 TT,只有在完成一次完整的操作后停在顶点 TT,才算到达。

输入格式

输入按以下格式从标准输入读入。

NN MM
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uMu_M vMv_M
SS TT

输出格式

如果无论进行多少次操作都无法从顶点 SS 移动到顶点 TT,输出 1-1

如果可以移动到,输出所需的最小“けんけんぱ”操作次数。

样例 1

输入

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

输出

2

样例 2

输入

3 3
1 2
2 3
3 1
1 2

输出

-1

样例 3

输入

2 0
1 2

输出

-1

样例 4

输入

6 8
1 2
2 3
3 4
4 5
5 1
1 4
1 5
4 6
1 6

输出

2

说明/提示

限制条件

  • 2N1052 \leq N \leq 10^5
  • 0Mmin(105,N(N1))0 \leq M \leq \min(10^5, N(N-1))
  • 1ui,viN (1iM)1 \leq u_i, v_i \leq N\ (1 \leq i \leq M)
  • uivi (1iM)u_i \neq v_i\ (1 \leq i \leq M)
  • 如果 iji \neq j,则 (ui,vi)(uj,vj)(u_i, v_i) \neq (u_j, v_j)
  • 1S,TN1 \leq S, T \leq N
  • STS \neq T

样例解释 1

第一次操作可以按 12341 \rightarrow 2 \rightarrow 3 \rightarrow 4 移动,第二次操作可以按 41234 \rightarrow 1 \rightarrow 2 \rightarrow 3 移动,这样就能到达顶点 33,这是最少的次数。

样例解释 2

无论进行多少次操作,都只能回到顶点 11,无法到达顶点 22。虽然在操作的中途可能经过顶点 22,但这不算到达。

样例解释 3

顶点 SS 和顶点 TT 可能是不连通的。

由 ChatGPT 4.1 翻译