#1030. 01BFS
01BFS
问题描述
给定一张 个点、 条无向边 的简单图,点的编号从 到 。
每条边的边权只有两种可能: 或 。
请你求出从 号点到 号点 的最短路径长度(即路径上所有边权之和的最小值)。
如果 号点无论如何也无法到达 号点,请输出 。
输入格式
第一行包含两个整数 和 ,表示点数和边数。
接下来 行,每行包含三个整数 ,表示一条连接 和 的无向边,权重 。
数据保证没有重边和自环(即 ,同一对点之间最多一条边)。
输出格式
一个整数,表示 号点到 号点的最短路径长度;若不可达,输出 。
样例输入 1
3 3
1 2 0
2 3 1
1 3 1
样例输出 1
1
说明:路径 ,总长度 ;直接走 也是 ,二者等价。
样例输入 2
4 3
1 2 0
2 3 0
1 4 1
样例输出 2
1
说明:路径 走不到 ;最短是 ,长度 。
样例输入 3
3 1
1 2 0
样例输出 3
-1
说明: 号点根本进不来任何边,与 号点不连通。
说明
- 答案可能为 (例如存在一条全部由 边组成的路径)。
- 时答案为 (已经在终点)。
- 若 与 不连通,输出 。
评测数据规模
对于所有数据,保证 ,,每条边权 。