floyd代码c语言
时间: 2023-12-19 19:29:28 浏览: 58
```c
#include <stdio.h>
#define INF 0x3f3f3f3f
int n, m, s, t;
int d[505][505];
void floyd() {
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (d[i][j] > d[i][k] + d[k][j]) {
d[i][j] = d[i][k] + d[k][j];
}
}
}
}
}
int main() {
scanf("%d%d%d%d", &n, &m, &s, &t);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) {
d[i][j] = 0;
} else {
d[i][j] = INF;
}
}
}
for (int i = 1; i <= m; i++) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
d[u][v] = w;
d[v][u] = w;
}
floyd();
printf("%d\n", d[s][t]);
return 0;
}
```