給出乙個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行輸...