#sjtu20101B. 幂最短路
幂最短路
时间限制: 1.0 秒
空间限制: 256 MB
题目描述
在这个古老的王国中,有 座城市,编号从 到 。城市之间通过 条双向道路连接。
这些道路的修建历史非常悠久,每条道路都有一个特定的编号,从 到 。由于某种神秘的魔法力量,第 号道路()的长度恰好是 。
现在你需要计算从王国首都(编号为 的城市)出发,到达其他所有城市(编号 到 )的最短路径长度。
由于路径长度可能非常大,请输出长度对 取模后的结果。如果某个城市无法到达,请输出 。
输入格式
从标准输入读入数据。
第一行包含两个整数 和 ,分别表示城市的数量和道路的数量。
接下来 行,第 行()包含两个整数 ,表示第 号道路(长度为 )连接了城市 和城市 。
输出格式
输出到标准输出。
输出共 行。 第 行输出从城市 到城市 的最短路径长度对 取模后的结果。如果无法到达,输出 。
4 4
0 1
1 2
0 2
2 3
1
3
11
样例 1 解释
共有 4 个城市,4 条道路:
- 0号路:连接 (0, 1),长度
- 1号路:连接 (1, 2),长度
- 2号路:连接 (0, 2),长度
- 3号路:连接 (2, 3),长度
计算最短路:
- 到城市 1:走 0号路 (0->1),距离为 1。
- 到城市 2:
- 路径 A:0->2 (走2号路),距离 4。
- 路径 B:0->1->2 (走0号路和1号路),距离 。
- 因为 ,所以最短距离为 3。
- 到城市 3:最优路径为 0->1->2->3,距离 。
样例 2
5 5
0 1
1 2
2 3
3 4
0 4
1
3
7
15
样例 2 解释
这是一条 0-1-2-3-4 的链,以及一条直接连接 0-4 的边(这是第4条输入,对应4号路,长度 )。 虽然 0-4 直连看起来只有一条边,但长度是 16。 而走链 0-1-2-3-4 的总长度是 。 因为 ,所以到城市 4 的最短路是 15。
子任务
对于所有测试数据,保证 ,,图一定连通。
| 测试点编号 | |
|---|---|