Vijos 最短路上的統計 Floyd

2021-09-05 09:26:57 字數 840 閱讀 7283

乙個無向圖上,沒有自環,所有邊的權值均為1,對於乙個點對(a,b),我們要把所有a與b之間所有最短路上的點的總個數輸出。

第一行n,m,表示n個點,m條邊

接下來m行,每行兩個數a,b,表示a,b之間有條邊

在下來乙個數p,表示問題的個數

接下來p行,每行兩個數a,b,表示詢問a,b

對於每個詢問,輸出乙個數c,表示a,b之間最短路上點的總個數

5 6

1 21 3

2 32 4

3 54 5

32 5

5 12 4

432

1s

範圍:n<=100,p<=5000

跑一遍floyd最短路,計算出任意兩個點的最短路,最後找出a到b還有哪些最短路徑。

#include const int inf = 99999999;

int map[110][110];

int main()

for (int i = 1; i <= n; i++)

for (int j = 1; j <= n; j++)

for (int k = 1; k <= n; k++)

if (map[j][k] > map[j][i] + map[i][k])

map[j][k] = map[j][i] + map[i][k];

scanf("%d", &q);

while (q--)

}return 0;

}

最短路上的統計

乙個無向圖上,沒有自環,所有邊的權值均為1,對於乙個點對 a,b 我們要把所有a與b之間所有最短路上的點的總個數輸出。第一行n,m,表示n個點,m條邊 接下來m行,每行兩個數a,b,表示a,b之間有條邊 在下來乙個數p,表示問題的個數 接下來p行,每行兩個數a,b,表示詢問a,b 對於每個詢問,輸出...

最短路上的統計 Floyd

description 乙個無向圖上,沒有自環,所有邊的權值均為1,對於乙個點對 a,b 我們要把所有a與b之間所有最短路上的點的總個數輸出。input 第一行n,m,表示n個點,m條邊 接下來m行,每行兩個數a,b,表示a,b之間有條邊 在下來乙個數p,表示問題的個數 接下來p行,每行兩個數a,b...

最短路上的統計 Floyed

description 乙個無向圖上,沒有自環,所有邊的權值均為1,對於乙個點對 a,b 我們要把所有a與b之間所有最短路上的點的總個數輸出。input 第一行n,m,表示n個點,m條邊 接下來m行,每行兩個數a,b,表示a,b之間有條邊 在下來乙個數p,表示問題的個數 接下來p行,每行兩個數a,b...