傳送門
資料範圍看起來好像很嚇人,但我還是水過去了嘻嘻
先跑一遍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行,每...