题目描述 Description
在有向图G中,每条边的长度均为1,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:
1.路径上的所有点的出边所指向的点都直接或间接与终点连通。
2.在满足条件1的情况下使路径最短。
注意:图G中可能存在重边和自环,题目保证终点没有出边。
请你输出符合条件的路径的长度。输入描述 Input Description
第一行有两个用一个空格隔开的整数n和m,表示图有n个点和m条边。
接下来的m行每行2个整数x、y,之间用一个空格隔开,表示有一条边从点x指向点y。
最后一行有两个用一个空格隔开的整数s、t,表示起点为s,终点为t。输出描述 Output Description
输出只有一行,包含一个整数,表示满足题目描述的最短路径的长度。如果这样的路径不存在,输出-1。样例输入 Sample Input
road1.in
3 2
1 2
2 1
1 3
road2.in
6 6
1 2
1 3
2 6
2 5
4 5
3 4
1 5样例输出 Sample Output
road1.out
-1
road2.out
3数据范围及提示 Data Size & Hint
对于30%的数据,0< n ≤10,0< m ≤20;
对于60%的数据,0< n ≤100,0< m ≤2000;
对于100%的数据,0< n ≤10,000,0< m ≤200,000,0< x,y,s,t≤n,x≠t。题解
一道求最短路的图论题,但多了一些限制条件。
先不看条件1,因为有重边和自环,所以最短路的算法可以选spfa。
条件1说明有一些点不能被选入最短路。这些点所连的点不能全部连向终点t。所以可以先从t开始用反向边bfs一遍,那么所有不连向点t的点就不会被遍历到。然后枚举所有边,若某边的终点没有被遍历到,
Noip2014寻找道路题解
最新推荐文章于 2024-06-22 10:00:00 发布