P1144 最短路計數

2022-03-04 01:37:55 字數 2118 閱讀 3580

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

輸入格式:

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

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

輸出格式:

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

輸入樣例#1: 複製

5 7

1 21 3

2 43 4

2 34 5

4 5

輸出樣例#1: 複製

111

24

1到5的最短路有4條,分別為2條1-2-4-5和2條1-3-4-5(由於4-5的邊有2條)。

對於20%的資料,n ≤ 100;

對於60%的資料,n ≤ 1000;

對於100%的資料,n<=1000000,m<=2000000。

#include using

namespace

std;

typedef

long

long

ll;#define inf 2147483647

const ll inf =0x3f3f3f3f3f3f3f3fll;

#define ri register inttemplate

inline t min(t a, t b, t c)

template

inline t max(t a, t b, t c)

template

inline t min(t a, t b, t c, t d)

template

inline t max(t a, t b, t c, t d)

#define scanf1(x) scanf("%d", &x)

#define scanf2(x, y) scanf("%d%d", &x, &y)

#define scanf3(x, y, z) scanf("%d%d%d", &x, &y, &z)

#define scanf4(x, y, z, x) scanf("%d%d%d%d", &x, &y, &z, &x)

#define pi acos(-1)

#define me(x, y) memset(x, y, sizeof(x));

#define for(i, a, b) for (int i = a; i <= b; i++)

#define ffor(i, a, b) for (int i = a; i >= b; i--)

#define bug printf("***********\n");

#define mp make_pair

#define pb push_back

const

int n = 1000005

;const

int mod=100003;//

name*******************************

struct

edge

e[n];

inthead[n];

int tot=0

;int

dis[n];

intcnt[n];

intvis[n];

queue

que;

intn,m;

inta,b,c;

//function******************************

void add(int u,int v,int

w)void spfa(int

x) }

else

if(dis[v]==dis[u]+w)

}}}//

***************************************

intmain()

cnt[

1]=1

; spfa(1);

for(i,

1,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行輸...