洛谷 P1144 最短路計數(最短路 SPFA)

2021-08-18 19:23:01 字數 611 閱讀 1372

傳送門

資料範圍看起來好像很嚇人,但我還是水過去了嘻嘻

先跑一遍spfa確定最短路長度,然後用記憶化搜尋累加答案(點1到點1的答案為1,然後遞迴搜尋,如果下乙個點在最短路徑上,我就把我的答案加上它的答案)

code:

#include

#include

#include

struct nodea[4000010];

int n,m,len,st,ed;

int first[1000010],q[1000010],f[1000010],ans[1000010];

void ins(int x,int y)

int dfs(int x)

int main()

memset(q,0,sizeof(q));q[1]=1;

memset(f,63,sizeof(f));f[1]=0;

st=1;ed=2;

while(st!=ed)

}st++;

}ans[1]=1;

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

printf("%d\n",dfs(i));

}

洛谷P1144 最短路計數 最短路

求乙個無向無權圖的1號點到每個點最短路的個數。一開始看到這道題真的蒙了。現在看回來才發現十分簡單。其實就是乙個spfa的模板。但是為了 計數 可以開乙個記錄答案的陣列sum sumsu m,那麼如果又找到一條從點1到點i ii最短路,就用sum i sum i sum i 加上s um u sum ...

洛谷P1144 最短路計數 最短路

求乙個無向無權圖的1號點到每個點最短路的個數。一開始看到這道題真的蒙了。現在看回來才發現十分簡單。其實就是乙個spfa的模板。但是為了 計數 可以開乙個記錄答案的陣列sum sum,那麼如果又找到一條從點1到點i i最短路,就用sum i s um i 加上sum u s um u uu表示從那個點...

洛谷 P1144 最短路計數

題目描述 給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入輸出格式 輸入格式 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出格式 輸出包括n行,每...