A118190.午枫的城市路线
普及/提高-
官方
通过率:0%
时间限制:1.00s
内存限制:256MB
题目描述
在一座城市中,有 N 个路口,编号为 1∼N。
城市中共有 M 条单向道路,每条道路 (ai,bi) 表示可以从路口 ai 直接前往路口 bi。
这些道路构成了一张有向图。现在,小午从路口 1 出发,他想知道:是否存在一条路径,能够从路口 1 出发,沿着道路前进,最终又回到路口 1?这样的路径称为一个回环路线(即起点和终点相同的路径)。
如果存在这样的回环路线,请你输出所有包含路口 1 的回环中,边数最少的那一条的长度;
如果不存在这样的回环,则输出 −1。
输入格式
第一行输入两个整数 N,M,表示路口数量和道路数量;
接下来 M 行,每行两个整数 ai,bi,表示一条从路口 ai 指向路口 bi 的单向道路。
输出格式
如果存在包含路口 1 的回环,输出其最少边数;否则输出 −1。
输入输出样例
输入#1
3 3 1 2 2 3 3 1
输出#1
3
说明/提示
解释说明
在示例一中,存在一条回环路线:1→2→3→1
这条路径从路口 1 出发并回到 1,长度为 3,因此答案为 3。
在示例二中,从路口 1 出发无法回到自身,因此不存在回环路线,答案为 −1。
数据范围
对于 100% 的测试数据,满足:2≤N≤2×105,1≤M≤min(2N(N−1), 2×105),1≤ai,bi≤N,ai=bi,不存在重边或反向重复边。