洛谷 P1144 最短路計數 解題報告

2022-04-30 05:54:10 字數 877 閱讀 9513

給出乙個\(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行,每行乙個非負整數,第...