#zDLybttg030206. 1499:最短路计数

1499:最短路计数

1499:最短路计数

题目描述

给出一个 NN 个顶点 MM 条边的无向无权图,顶点编号为 1N1 \sim N。问从顶点 11 开始,到其他每个点的最短路有几条。

输入格式

第一行包含两个整数 NNMM

接下来 MM 行,每行包含两个整数 xxyy,表示顶点 xx 和顶点 yy 之间有一条无向边。

输出格式

输出 NN 行,每行一个非负整数。第 ii 行输出从顶点 11 到顶点 ii 有多少条不同的最短路。由于答案有可能会很大,只需要输出结果对 100003100003 取模后的值即可。如果无法到达顶点 ii 则输出 00

样例

样例输入 #1

5 7
1 2
1 3
2 4
3 4
2 3
4 5
4 5

样例输出 #1

1
1
1
2
4

样例解释 #1

  • 从顶点 11 到顶点 11:只有 11 条路径(不动),长度为 00,输出 11
  • 从顶点 11 到顶点 22:只有 11 条最短路 121→2(长度为 11),输出 11
  • 从顶点 11 到顶点 33:只有 11 条最短路 131→3(长度为 11),输出 11
  • 从顶点 11 到顶点 44:有 22 条最短路(长度均为 22):
    • 1241→2→4
    • 1341→3→4 输出 22
  • 从顶点 11 到顶点 55:有 44 条最短路(长度均为 33):
    • 12451→2→4→5(第一条 454→5 的边)
    • 12451→2→4→5(第二条 454→5 的边)
    • 13451→3→4→5(第一条 454→5 的边)
    • 13451→3→4→5(第二条 454→5 的边) 输出 44

注意:图中 4455 之间有两条不同的边(重边),因此最短路数量会受到影响。

数据范围

  • 对于 20%20\% 的数据,N100N \le 100
  • 对于 60%60\% 的数据,N1000N \le 1000
  • 对于 100%100\% 的数据,1N1000001 \le N \le 1000000M2000000 \le M \le 200000

时空限制

  • 时间限制:1000 ms
  • 内存限制:65536 KB