#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef long long ll;
const int MAXN = 1005;
const int INF = 0x3f3f3f3f;
int c[MAXN][MAXN], vis[MAXN], lc[MAXN], p[MAXN];
int n, m;
//从start出发
void dijkstra(int start) {
memset(p, -1, sizeof(p));
memset(vis, 0, sizeof(vis));
for (int i = 0; i < n; i++)
lc[i] = (i == start ? 0 : INF);
for (int i = 0; i < n; i++) {
int k = -1, minc = INF;
for (int j = 0; j < n; j++)
if (!vis[j] && lc[j] < minc)
minc = lc[k = j];
if (k == -1)
break;
vis[k] = 1;
for (int j = 0; j < n; j++) {
if (!vis[j] && lc[j] > lc[k] + c[k][j]) {
lc[j] = lc[k] + c[k][j];
p[j] = k; //储存路径
}
}
}
}
07-22
07-22
07-22
07-22