題目描述 給出乙個 n 個頂點 m 條邊的無向無權圖,頂點編號為1−n。問從頂點1開始,到其他每個點的最短路有幾條。
輸入格式 第一行包含2個正整數n,m,為圖的頂點數與邊數。
接下來m行,每行2個正整數x,y,表示有一條頂點 x 連向頂點 y 的邊,請注意可能有自環與重邊。
輸出格式 共n行,每行乙個非負整數,第 i 行輸出從頂點1到頂點 i 有多少條不同的最短路,由於答案有可能會很大,你只需要輸出 ans mod 100003 後的結果即可。如果無法到達頂點 i 則輸出 0 。
輸入輸出樣例 輸入 #1
5 71 2
1 32 4
3 42 3
4 54 5
輸出 #111
124
#include
#include
#include
#define maxpath 999999999
using
namespace std;
int dis[
1000001
],cnt;
int book[
1000001];
int ans[
1000001];
int head[
1000001];
queue <
int> q;
struct edge
;edge e[
2000001];
void
add(
int u,
int v)
intmain()
q.push(1
);book[1]
=1; ans[1]
=1;int k =0;
while
(q.size()
)}else
if(dis[e[i]
.v]== dis[k]+1
)}}for
(int i =
1; i <= n; i ++
) cout << ans[i]
<< endl;
return0;
}
最短路計數,次短路計數
acwing 1134.最短路計數 bfs 每個點只出隊一次,且入隊一次 dijkstra 每個點第一次出隊的序列一定滿足拓撲序 bellman ford spfa 出隊的時候都不一定是滿足最小,每個點可能出隊多次,有可能更新前面已經出隊的點,不具備拓撲序 但是要用 spfa 求最短路徑數,也是可以...
最短路計數
乙個無向圖上,沒有自環,所有邊的權值均為1,對於乙個點對 a,b 我們要把所有a與b之間所有最短路上的點的總個數輸出。總數 方程 if dis k map k,j dis j then inc dis k 所有最短路經過的點數之和 先求出floyd,然後 if dis i,k dis k,j dis...
最短路計數
題目描述 給出乙個nn個頂點mm條邊的無向無權圖,頂點編號為1 n1 n。問從頂點11開始,到其他每個點的最短路有幾條。輸入輸出格式 輸入格式 第一行包含22個正整數n,mn,m,為圖的頂點數與邊數。接下來mm行,每行22個正整數x,yx,y,表示有一條頂點xx連向頂點yy的邊,請注意可能有自環與重...