#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
const int mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;
int t, n, m, a[maxn][maxn], cnt;
char s[maxn], s2[maxn];
void Floyd() {
for(int k = 1; k <= n; k++) {
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
if(a[i][j] > a[i][k] + a[k][j]) {
a[i][j] = a[i][k] + a[k][j];
}
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin >> n >> m;
//初始化处理
for(int i = 0; i <= n; i++) {
for(int j = 0; j <= n; j++) {
if(i == j) {
a[i][j] = 0;
} else {
a[i][j] = INF;
}
}
}
while(m--) {
int t1, t2, t3;
cin >> t1 >> t2 >> t3;
if(a[t1][t2] > t3) {
a[t1][t2] = t3;
}
}
Floyd();
}
最短路--Floyd
最新推荐文章于 2024-10-28 17:34:45 发布