1501 [ABC376D]Cycle | OJ题库 | CODE STUDY
CODE STUDY
Programming Practice Platform

欢迎回来

1501

[ABC376D]Cycle

Easy 时间限制 1000 ms 内存限制 262144 KB
有向图的遍历 BFS

题目详情

返回题库

题目描述

有一个简单的有向图,图中有  N 个顶点,编号从1 到N ,有  M 条边。

第i条边  (1≤i≤M) 是一条从顶点  ai ​   到顶点 bi ​的有向边。 判断是否存在包含顶点  1 的循环,如果存在,求这种循环中边的最小数目。

输入描述

第一行N和M

第二行到第M+1行,每行a和b两个数,代表ai到bi有一条有向边

数据范围:

  • 2≤N≤2×$10^5$
  • 1≤M≤min⁡($\frac{N(N-1)}{2}$,2×$10^5$)
  • 1≤ai≤N
  • 1≤bi≤N
  • ai≠bi​
  • 如果ij则(ai,bi)≠(aj,bj) (ai,bi)≠(bj,aj),

输出描述

如果存在包含顶点1的环,则打印此类环中的最小边数。否则,打印-1

测试样例

样例支持多行内容展示
样例1
输入
3 3
1 2
2 3
3 1
输出
3
样例2
输入
3 2
1 2
2 3
输出
-1
样例3
输入
6 9
6 1
1 5
2 6
2 1
3 6
4 2
6 4
3 5
5 4
输出
4
editor.py

提交前会先自动运行样例。只有样例全部通过,才会进入后端正式判题。