最短路计数

提交数: 79, 通过率: 51.9%, 平均分: 65.82

题目描述:

给出一个N个顶点M条边的无向无权图,顶点编号为1~N。问从顶点1开始,到其他每个点的最短路有几条?

输入格式:

第一行包含2个正整数N, M, 分别为图的顶点数与边数。

接下来M行,每行两个正整数x, y,表示有一条从顶点x连向点y的边。请注意可能有自环与重边。

输出格式:

共N行,每行一个非负整数,第i行输出从顶点1到顶点i有多少条不同的最短路,由于结果的值有可能会很大,你只需要输出结果 mod 100003即可。如果无法到达顶点i,则输出0。

数据范围:

对于20%的数据,N<=100。

对于60%的数据,N<=1000。

对于100%的数据,N<=100,000, M<=200,000。

样例输入:

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

样例输出:

1
1
1
2
4

提示:

样例解释:

1到5的最短路有4条,分别为2条1-2-4-5和2条1-3-4-5 ( 由于4-5的边有2条)。

dijsktra算法,堆优化

 

时间限制: 1000ms
空间限制: 256MB