P1144 最短路計數

2021-09-25 06:45:30 字數 1311 閱讀 3061

給出乙個n個頂點m條邊的無向無權圖,頂點編號為1-n。問從頂點1開始,到其他每個點的最短路有幾條。

輸入輸出格式

輸入格式:

第一行包含2個正整數n,m,為圖的頂點數與邊數。

接下來m行,每行2個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。

共n行,每行乙個非負整數,第ii行輸出從頂點1到頂點i有多少條不同的最短路,由於答案有可能會很大,你只需要輸出ans mod 100003後的結果即可。如果無法到達頂點i則輸出0。

571

2132

4342

3454

5

111

24

在dijkstra函式內定義乙個node型別的變數,然後每次用這個變數提取隊首元素,統計這個點的前驅到這個點的路徑是否等於它的最短路徑,然後一邊算一邊模即可。

#include

#define m(a,b) memset(a,b,sizeof(a))

#define inf 0x3f3f3f3f

#define mod 100003

using

namespace std;

inline

void

read

(int

&x)while

(ch>=

'0'&& ch<=

'9')

if(c==

'-')x=

-x;}

int n,m,dis[

1000005

],head[

1000005

],s,js[

1000005

],num;

struct edge

edge[

2000005];

inline

voidct(

int u,

int v,

int w)

struct node};

void

dijkstra()

);node a;

while

(!q.

empty()

));}

}}}int

main()

dijkstra()

;for

(int i=

1;i<=n;

++i)cout<<<

'\n'

; cout<<

'\n'

;return0;

}

P1144 最短路計數

給出乙個nn個頂點mm條邊的無向無權圖,頂點編號為1 n1 n。問從頂點11開始,到其他每個點的最短路有幾條。輸入格式 第一行包含22個正整數n,mn,m,為圖的頂點數與邊數。接下來mm行,每行22個正整數x,yx,y,表示有一條頂點xx連向頂點yy的邊,請注意可能有自環與重邊。輸出格式 共nn行,...

P1144 最短路計數

給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入格式 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出格式 輸出包括n行,每行乙個非負整數,第i行輸...

P1144 最短路計數

給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入格式 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出格式 輸出包括n行,每行乙個非負整數,第i行輸...