#CSP1103. 最短路(path)
最短路(path)
题目描述
小 Z 所在的村庄有 个房屋,房屋编号为 ,房屋与房屋之间有 条双向道路相连。
小 Z 想从 号房屋走到 号房屋,小 Z 是一个追求效率的人,因此,他每次都会走从 到 的最快路线。但是,现在有一个比较棘手的问题,作为小 Z 的死对头小 Y,他都会站在小 Z 通往 号房屋最快路线上的最后一条道路的中间等待小 Z,企图阻止小 Z 到达 号房屋。
小 Z 当然不想受到小 Y 的阻扰,因此小 Z 会选择一条略有不同的路线从 号房屋到达 号房屋。小 Z 想知道这些不是最快路线的新路线的最佳时间,使得小 Z 能够从 号房屋到达 号房屋,并且能够避开最快路线上最后一条道路中间的小 Y。
换句话说,现在有 个点 条边的无向图,对于任意一个节点 ,小 Z 想要知道从 号点到 号点在不经过原来 到 最短路上最后一条边的前提下, 到 的最短路。
特别地,保证 号节点到任何一个点 的最短路都是唯一的。
输入格式
从 path.in 文件读入数据。
第一行,两个整数 表示图中的点数和边数。
接下来有 行,每行三个整数 表示有一条 到 ,边权为 的无向边。
输出格式
输出到 path.out 文件。
共 行,第 行表示节点 到节点 在不经过原来 节点到 节点最短路上最后一条边的前提下的最短路,如果不存在满足条件的最短路,则输出 -1。
样例
4 5
1 2 2
1 3 2
3 4 4
3 2 1
2 4 3
3
3
6
样例2
点击链接 ex_path2.in 和 ex_path2.out 下载大样例 2 的输入数据和输出数据。
说明/提示
样例 1 解释
- 从 到 的最短路是 ,最快时间是 ,最短路上最后一条边是 ,现在不能经过这一条边,那么较快的路径是 ,耗费时间为 。
- 从 到 的最短路是 ,最快时间是 ,最短路上最后一条边是 ,现在不能经过这一条边,那么较快的路径是 ,耗费时间为 。
- 从 到 的最短路是 ,最快时间是 ,最短路上最后一条边是 ,现在不能经过这一条边,那么较快的路径是 ,耗费时间为 。
数据范围
的数据 。
的数据 。
的数据 ,并且 。
Related
In following contests: