P1144 最短路計數

2022-06-09 22:42:12 字數 876 閱讀 8538

bfs

bfs 只入隊一次,出隊一次,可以抽象成拓撲圖。

因為它可以保證被更新的點的父節點一定已經是最短距離了,並且這個點的路徑數已經更新完成。

const int n=1e6+10;

vectorg[n];

int dist[n];

bool vis[n];

int cnt[n];

int n,m;

void bfs()

bfs();

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

if(dist[i] == -1) cout<<0<\(dijkstra\)

\(dijkstra\)每個點只出隊一次,也可以抽象成拓撲圖。

由於每乙個出隊的點一定已經是最短距離,並且這個點的路徑數已經更新完成。

const int n=1e6+10;

vectorg[n];

int dist[n];

bool vis[n];

int f[n];

int n,m;

void dijkstra()

); f[1]=1;

while(heap.size()));}

else if(dist[j] == dist[t]+w)}}

}int main()

); g[b].pb();

}dijkstra();

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

if(dist[i] == inf) cout<<0

}

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