給出乙個\(n\)個頂點\(m\)條邊的無向無權圖,頂點編號為\(1-n\)。問從頂點1開始,到其他每個點的最短路有幾條。
第一行包含2個正整數\(n,m\),為圖的頂點數與邊數。
接下來\(m\)行,每行2個正整數\(x,y\),表示有一條頂點\(x\)連向頂點\(y\)的邊,請注意可能有自環與重邊。
共\(n\)行,每行乙個非負整數,第\(i\)行輸出從頂點1到頂點\(i\)有多少條不同的最短路,由於答案有可能會很大,你只需要輸出\(ans\)
\(mod\) 100003後的結果即可。如果無法到達頂點\(i\)則輸出0 。
最短路計數,這個用spfa寫的。
思路和disj是一樣的社交網路
code:
#include #include #include using namespace std;
const int n=1000010;
const int mod=100003;
int head[n],to[n<<2],next[n<<2],cnt0;
void add(int u,int v)
int n,m,dis[n],used[n],cnt[n];
queue q;
void spfa()
}else if(dis[v]==dis[u]+1)
cnt[v]=(cnt[v]+cnt[u])%mod;}}
}int main()
spfa();
for(int i=1;i<=n;i++)
printf("%d\n",cnt[i]);
return 0;
}
2018.7.1 洛谷 P1144 最短路計數
題目描述 給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入輸出格式 輸入格式 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出格式 輸出包括n行,每...
洛谷 P1144 最短路計數
給出乙個nn個頂點mm條邊的無向無權圖,頂點編號為1 n1 n。問從頂點11開始,到其他每個點的最短路有幾條。輸入格式 第一行包含22個正整數n,mn,m,為圖的頂點數與邊數。接下來mm行,每行22個正整數x,yx,y,表示有一條頂點xx連向頂點yy的邊,請注意可能有自環與重邊。輸出格式 共nn行,...
洛谷 P1144 最短路計數
給出乙個nn個頂點mm條邊的無向無權圖,頂點編號為1 n1 n。問從頂點11開始,到其他每個點的最短路有幾條。第一行包含22個正整數n,mn,m,為圖的頂點數與邊數。接下來mm行,每行22個正整數x,yx,y,表示有一條頂點xx連向頂點yy的邊,請注意可能有自環與重邊。共nn行,每行乙個非負整數,第...