#CSPJ202601C. 小镇环路
小镇环路
题目描述
有一个小镇一共有 个路口,编号从 到 。路口之间有 条单向通行的道路,第 条道路从路口 通往路口 。保证图中没有自环,并且任意两条边的有序对互不相同。
现在小蓝想检查:以小镇的中心路口—— 号路口为起点,是否存在一条从 号路口出发最后又回到 号路口的环路?如果存在,请求出所有经过 号路口的环路中,道路数量最少的那个环路的边数;如果不存在,输出 -1。
输入格式
第一行两个正整数 ,分别表示路口总数和单向道路总数。
接下来 行,每行两个正整数 ,表示一条从 指向 的有向边。
输出格式
输出一行一个整数,包含 号路口的最短环路的边数。如果不存在这样的环路,输出 -1。
3 3
1 2
2 3
3 1
3
样例 1 解释说明
路径 是一条有 条边的环路,这是经过 号路口唯一且最短的环路。
3 2
1 2
2 3
-1
6 9
6 1
1 5
2 6
2 1
3 6
4 2
6 4
3 5
5 4
4
数据规模与约定
对于全部的测试点,保证:
- $1 \le M \le \min\left(\frac{N(N-1)}{2}, 2 \times 10^5\right)$
- 所有输入数值均为整数
相关
在下列比赛中: