洛谷1144 最短路計數

2022-09-17 18:33:16 字數 2415 閱讀 5756

給出乙個n個頂點m條邊的無向無權圖,頂點編號為1~n。問從頂點1開始,到其他每個點的最短路有幾條。

大水題 , 為了備忘 , 還是記下來吧 .

不推方程了,,,,in code .

1//2

*dijkstra:

4 #include5 #include6 #include7 #include8

using

namespace

std;

9const

int inf=2147483647;10

const

int maxn=1e6+1,mod=100003;11

intsp[maxn],cnt[maxn];

12struct

edge

1316

};17 vectore;

18 vectorg[maxn];

19struct

heapnode

2023

bool

operator

< (const heapnode& r) const

24};

25 priority_queueq;

26 inline int

read()

2730

while(c>='

0'&&c<='9')

31return f*x;32}

33void insert(int

from,int to,int

dis)

3438

intmain()

3947

for(int i=0;i<=n+1;i++)sp[i]=inf;

48 sp[1]=0;cnt[1]=1

;49 q.push(heapnode(1,sp[1

]));

50while(!q.empty())

5164

else

if(sp[it.to]==sp[a.u]+1

)65 cnt[it.to]=(cnt[it.to]+cnt[a.u])%mod; 66}

67}68for(int i=1;i<=n;i++)

69if(sp[i]"

%d%c

",cnt[i],10

);70

else printf("

%d%c

",0,10

);71

return0;

72}73//

*spfa:

74//

#include

75//

#include

76//

#include

77//

#include

78//

using namespace std;

79//

const int n=1e6+1,m=2e6+1;

80//

const int mod=100003,inf=1e7+1,dis=1;

81//

int h[n],cnt[n],sp[n],ect=0;

82//

bool vis[n];

83//

struct graph

86//

};87

//graph g[m];

88//

queueq;

89//

90//

void addedge(int from,int to)

91//

97//

inline int read()

98//

101//

while(c>='0'&&c<='9')

102//

return s*f;

103//

}104

//int main()

105//

115//

int now=0;

116//

sp[begin]=0;

117//

q.push(begin);

118//

vis[begin]=true;

119//

cnt[begin]=1;

120//

while(!q.empty())

121//

131//

else if(sp[now]+dis132

//140//}

141//

}142

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

143//

printf("%d\n",cnt[i]);

144//

return 0;

145//

}

dijkstra & spfa

洛谷1144 最短路計數

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

洛谷 1144 模板 最短路計數

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

spfa dp 洛谷1144 最短路計數

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